Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để chọn từ MySQL bảng A không tồn tại trong bảng B?

Bạn có thể sử dụng toán tử IN để chọn từ một bảng không tồn tại trong bảng khác. Để hiểu cú pháp trên, chúng ta hãy tạo một bảng.

Tên bảng đầu tiên là A và tên bảng thứ hai là B. Truy vấn để tạo một bảng như sau

mysql> create table A
   -> (
   -> Value int
   -> );
Query OK, 0 rows affected (0.56 sec)

Bây giờ bạn có thể chèn một số bản ghi trong bảng bằng lệnh insert.

Truy vấn như sau

mysql> insert into A values(10);
Query OK, 1 row affected (0.23 sec)
mysql> insert into A values(20);
Query OK, 1 row affected (0.11 sec)
mysql> insert into A values(30);
Query OK, 1 row affected (0.11 sec)
mysql> insert into A values(50);
Query OK, 1 row affected (0.10 sec)
mysql> insert into A values(80);
Query OK, 1 row affected (0.12 sec)

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.

Truy vấn như sau

mysql> select *from A;

Sau đây là kết quả

+-------+
| Value |
+-------+
| 10    |
| 20    |
| 30    |
| 50    |
| 80    |
+-------+
5 rows in set (0.00 sec)

Đây là truy vấn để tạo bảng thứ hai với tên B

mysql> create table B
   -> (
   -> Value2 int
   -> );
Query OK, 0 rows affected (0.65 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn.

Truy vấn như sau

mysql> insert into B values(20);
Query OK, 1 row affected (0.11 sec)
mysql> insert into B values(50);
Query OK, 1 row affected (0.15 sec)

Giờ đây, bạn có thể 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.

Truy vấn như sau

mysql> select *from B;

Sau đây là kết quả

+--------+
| Value2 |
+--------+
| 20     |
| 50     |
+--------+
2 rows in set (0.00 sec)

Đây là truy vấn để chọn từ bảng A không tồn tại trong bảng B

mysql> SELECT * FROM A WHERE Value NOT IN (SELECT Value2 FROM B);

Sau đây là kết quả

+-------+
| Value |
+-------+
| 10    |
| 30    |
| 80    |
+-------+
3 rows in set (0.00 sec)