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

ÁP DỤNG CROSS / OUTER trong MySQL

Trực tiếp gần nhất của bạn xấp xỉ là một phép nối với một truy vấn phụ có tương quan làm vị từ.

SELECT
   ORD.ID
  ,ORD.NAME
  ,ORD.DATE
  ,ORD_HISTORY.VALUE
FROM
  ORD
INNER JOIN
  ORD_HISTORY
    ON  ORD_HISTORY.<PRIMARY_KEY>
        =
        (SELECT ORD_HISTORY.<PRIMARY_KEY>
           FROM ORD_HISTORY
          WHERE ORD.ID = ORD_HISTORY.ID
            AND ORD.DATE <= ORD_HISTORY.DATE
       ORDER BY ORD_HISTORY.DATE DESC
          LIMIT 1
        )

Tuy nhiên, trong trường hợp của bạn, bạn chỉ cần một trường từ bảng đích. Điều này có nghĩa là bạn có thể sử dụng truy vấn phụ tương quan trực tiếp trong câu lệnh SELECT.

SELECT
   ORD.ID
  ,ORD.NAME
  ,ORD.DATE
  ,(SELECT ORD_HISTORY.VALUE
      FROM ORD_HISTORY
     WHERE ORD.ID = ORD_HISTORY.ID
       AND ORD.DATE <= ORD_HISTORY.DATE
  ORDER BY ORD_HISTORY.DATE DESC
     LIMIT 1
   )   AS VALUE
FROM
  ORD


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mệnh đề VỚI MySQL

  2. Hàm mật khẩu MySQL

  3. Làm thế nào để chuyển đổi các ký tự chữ thường thành chữ hoa trong MySQL

  4. Cách gọi thủ tục lưu trữ MySQL bằng Python

  5. Không thể đưa ra các câu lệnh thao tác dữ liệu với executeQuery ()