Tạo 2 bảng và dùng NATURAL LEFT JOIN để lấy hàng chỉ có trong bảng đầu tiên.
Tạo bảng đầu tiên
mysql> CREATE TABLE FirstTableDemo (
-> id INT,
-> name VARCHAR(100)
-> );
Query OK, 0 rows affected (0.48 sec)
mysql> INSERT INTO FirstTableDemo VALUES(1,'Bob'),(2,'John'),(3,'Carol'); Query OK, 3 rows affected (0.13 sec)
mysql> SELECT * FROM FirstTableDemo;
+------+-------+ | id | name | +------+-------+ | 1 | Bob | | 2 | John | | 3 | Carol | +------+-------+ 3 rows in set (0.00 sec)
Tạo bảng thứ hai
mysql> CREATE TABLE SecondTableDemo (
-> id INT,
-> name VARCHAR(100)
-> );
Query OK, 0 rows affected (0.62 sec)
mysql> INSERT INTO SecondTableDemo VALUES(1,'Bob'),(2,'John'); Query OK, 2 rows affected (0.12 sec)
mysql> SELECT * FROM SecondTableDemo;
+------+------+ | id | name | +------+------+ | 1 | Bob | | 2 | John | +------+------+
Truy vấn lấy hàng chỉ có trong bảng 1
mysql> SELECT tbl1.*
-> FROM FirstTableDemo tbl1
-> NATURAL LEFT JOIN SecondTableDemo tbl2
-> WHERE tbl2.name IS NULL;
+------+-------+ | id | name | +------+-------+ | 3 | Carol | +------+-------+ 1 row in set (0.03 sec)
Kết quả trả về Carol - hàng chỉ tồn tại trong FirstTableDemo.