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

Kết hợp hai bảng, loại trừ các bản ghi giống nhau

Có vẻ như bạn cần FULL OUTER JOIN và loại trừ phần chung. Bạn có thể mô phỏng nó bằng:

SELECT T1.col_name
FROM T1 
LEFT JOIN T2
  ON T1.col_name = T2.col_name
WHERE T2.col_name IS NULL
UNION
SELECT T2.col_name
FROM T2 
LEFT JOIN T1
  ON T1.col_name = T2.col_name
WHERE T1.col_name IS NULL;

SqlFiddleDemo

╔══════════╗
║ col_name ║
╠══════════╣
║ C        ║
║ D        ║
║ E        ║
║ F        ║
║ G        ║
╚══════════╝

Thông tin thêm: Trình bày trực quan của kết hợp SQL

SELECT <select_list>
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A.Key = B.Key
WHERE A.Key IS NULL OR B.Key IS NULL

Thật không may, MySQL không hỗ trợ FULL OUTER JOIN vì vậy tôi đã sử dụng liên hiệp 2 LEFT JOIN .

Phụ lục

Bạn có thể dễ dàng mở rộng nó với các cột bổ sung.

SELECT 'T1' AS tab_name, T1.col_name, T1.col1, NULL AS col2
FROM  T1
LEFT JOIN  T2
  ON T1.col_name=  T2.col_name
WHERE T2.col_name IS NULL
UNION
SELECT 'T2' AS tab_name, T2.col_name, NULL, T2.col2
FROM  T2
LEFT JOIN  T1
  ON T1.col_name=  T2.col_name
WHERE T1.col_name IS NULL;

LiveDemo

Đầu ra:

╔══════════╦══════════╦══════╦═════════════════════╗
║ tab_name ║ col_name ║ col1 ║        col2         ║
╠══════════╬══════════╬══════╬═════════════════════╣
║ T1       ║ C        ║    3 ║                     ║
║ T1       ║ D        ║    4 ║                     ║
║ T2       ║ E        ║      ║ 2016-01-03 00:00:00 ║
║ T2       ║ F        ║      ║ 2016-01-02 00:00:00 ║
║ T2       ║ G        ║      ║ 2016-01-01 00:00:00 ║
╚══════════╩══════════╩══════╩═════════════════════╝


  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 để đặt ngày thành NULL trong Yii?

  2. MySQL Trigger - Lưu trữ một SELECT trong một biến

  3. Làm cách nào để tạo một dạng xem trong MySQL?

  4. Lỗi cú pháp:WITH không phải là đầu vào hợp lệ ở vị trí này

  5. MySQL và NoSQL:Giúp tôi chọn đúng