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

Cách nối kết quả của 2 bảng dựa trên điều kiện không

Bạn có thể sử dụng truy vấn sau:

SELECT id, name, partNumber, Aid, Aname, Apart
FROM TableB AS t
CROSS JOIN (SELECT id AS Aid, name AS Aname, partNumber AS Apart
            FROM TableA AS a
            WHERE NOT EXISTS (SELECT 1
                              FROM TableB AS b
                              WHERE b.partNumber = a.partNumber)) AS c
ORDER BY id    

Ý tưởng là chọn tất cả các bản ghi được yêu cầu từ TableA sử dụng NOT EXISTS mệnh đề. Sau đó, CROSS JOIN bảng dẫn xuất từ ​​truy vấn này với Table1 để có được tất cả các kết hợp có thể có.

Demo tại đây




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thêm phân trang và tìm kiếm bằng cách sử dụng dữ liệu jquery

  2. Công thức cơ sở dữ liệu đầu bếp mysql không thành công trên tệp lớn

  3. Làm mới nội dung tự động nếu cơ sở dữ liệu thay đổi

  4. Làm cách nào để xem các chỉ mục cho cơ sở dữ liệu hoặc bảng trong MySQL?

  5. Truy vấn MySQL với số lượng và nhóm theo