Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nối 2 bảng trên cột thay đổi động

Điều này rất khó thực hiện trong MySQL vì một vài lý do. Đầu tiên, MySQL không hỗ trợ tốt cho các tổng tích lũy, đó là những gì bạn muốn so sánh.

Và thứ hai, tập kết quả của bạn hơi yếu. Sẽ có ý nghĩa hơn khi hiển thị tất cả ins các bản ghi đóng góp vào mỗi outs ghi lại, không chỉ một trong số chúng.

Vì mục đích này, bạn có thể sử dụng một phép kết hợp tính tổng tích lũy, trông giống như sau:

select o.*, (o.to_quantity  - o.quantity) as from_quantity,
       i.*
from (select o.*,
             (select sum(o2.quantity)
              from outs o2
              where o2.id <= o.id
             ) as to_quantity
      from outs o
     ) o join
     (select i.*,
             (select sum(i2.quantity)
              from ins i2
              where i2.id <= i.id
             ) as to_quantity
      from ins i
     ) i
     on (o.to_quantity  - o.quantity) < i.to_quantity and
        o.to_quantity > (i.to_quantity  - i.quantity)

Tại đây là SQL Fiddle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thiết lập ánh xạ ngủ đông để cho phép các Chuỗi dài hơn 255 ký tự?

  2. Cách sử dụng SQL Chọn một mối quan hệ một với nhiều và hợp nhất đầu ra

  3. mySQL:Truy vấn con tới mảng?

  4. Khắc phục Sử dụng ở đâu; Sử dụng tạm thời; Sử dụng filesort

  5. trình kết nối mysql không được tích hợp trong studio trực quan