Liệt kê dữ liệu chỉ có ở bảng table1 mà không có ở bảng table2 trong MySQL

Hướng dẫn cách viết câu lệnh MySQL để liệt kê các dữ liệu chỉ có trong bảng table1 mà không có trong bảng table2. Câu lệnh SQL này giúp tìm các bản ghi không khớp giữa hai bảng dựa trên khóa liên kết.

SELECT t1.id, t1.date
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.table1_id
WHERE t2.table1_id IS NULL;

Giải thích chi tiết:

  1. LEFT JOIN: Kết hợp bảng table1 với bảng table2 dựa trên điều kiện t1.id = t2.table1_id. LEFT JOIN đảm bảo rằng tất cả các hàng từ bảng table1 được giữ lại, bất kể có khớp với bảng table2 hay không.

  2. WHERE t2.table1_id IS NULL: Lọc các hàng mà không có bản ghi tương ứng trong bảng table2. Điều này có nghĩa là chỉ lấy các bản ghi từ bảng table1 mà không có tương ứng trong bảng table2.

Phiên bản MySQL:

Câu lệnh SQL này có thể chạy trên các phiên bản MySQL từ 5.0 trở lên, vì các phép toán cơ bản như LEFT JOIN và điều kiện IS NULL được hỗ trợ từ các phiên bản này.



Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Ý nghĩa của MUL trong MySQL

Bài viết giải thích ý nghĩa của chỉ mục MUL trong MySQL. MUL là chỉ mục có thể xuất hiện trong bảng khi một cột có thể có các giá trị không duy nhất và thường được sử dụng với khóa ngoại.
Liệt kê dữ liệu chung của hai bảng dựa trên khóa liên kết trong MySQL

Hướng dẫn cách viết câu lệnh MySQL để liệt kê các dữ liệu chung giữa hai bảng dựa trên khóa liên kết. Câu lệnh SQL này giúp tìm các bản ghi có mặt trong cả hai bảng.

Đã thêm vào giỏ hàng