Để CHỌN từ bảng A không tồn tại trong bảng B, bạn có thể sử dụng phép nối bên trái. Sau đây là cú pháp -
select yourTableNameA.* from yourTableNameA left join yourTableNameB on yourTableNameA.yourColumnName = yourTableNameB.yourColumnName where yourTableNameB.yourColumnName IS NULL;
Đầu tiên chúng ta hãy tạo một bảng. Sau đây là truy vấn -
mysql> create table table_A -> ( -> Value int -> ); Query OK, 0 rows affected (1.10 sec)
Sau đây là truy vấn để chèn các bản ghi trong bảng bằng cách sử dụng lệnh insert -
mysql> insert into table_A values(10); Query OK, 1 row affected (0.32 sec) mysql> insert into table_A values(15); Query OK, 1 row affected (0.10 sec) mysql> insert into table_A values(35); Query OK, 1 row affected (0.21 sec) mysql> insert into table_A values(45); Query OK, 1 row affected (0.13 sec)
Sau đây là truy vấn để hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select -
mysql> select *from table_A;
Điều này sẽ tạo ra kết quả sau -
+-------+ | Value | +-------+ | 10 | | 15 | | 35 | | 45 | +-------+ 4 rows in set (0.00 sec)
Hãy để chúng tôi tạo một bảng khác. Sau đây là truy vấn -
mysql> create table table_B -> ( -> Value int -> ); Query OK, 0 rows affected (0.51 sec)
Sau đây là truy vấn để chèn một số bản ghi trong bảng bằng cách sử dụng lệnh insert -
mysql> insert into table_B values(10); Query OK, 1 row affected (0.18 sec) mysql> insert into table_B values(20); Query OK, 1 row affected (0.12 sec) mysql> insert into table_B values(35); Query OK, 1 row affected (0.23 sec) mysql> insert into table_B values(60); Query OK, 1 row affected (0.12 sec)
Sau đây là truy vấn để hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select -
mysql> select *from table_B;
Điều này sẽ tạo ra kết quả sau -
+-------+ | Value | +-------+ | 10 | | 20 | | 35 | | 60 | +-------+ 4 rows in set (0.00 sec)
Sau đây là truy vấn để chọn từ bảng A không tồn tại trong bảng B với LEFT JOIN -
mysql> select table_A.* -> from table_A left join table_B on table_A.Value = table_B.Value -> where table_B.Value IS NULL;
Điều này sẽ tạo ra kết quả sau -
+-------+ | Value | +-------+ | 15 | | 45 | +-------+ 2 rows in set (0.04 sec)