Tạo hai bảng sinh viên
mysql> CREATE TABLE DemoTable1 (
-> StudentId INT,
-> StudentName VARCHAR(20)
-> );
mysql> INSERT INTO DemoTable1 VALUES(210, 'Adam');
mysql> CREATE TABLE DemoTable2 (
-> StudentId INT,
-> StudentName VARCHAR(20)
-> );
mysql> INSERT INTO DemoTable2 VALUES(100, 'Chris');
Dữ liệu từng bảng
mysql> SELECT * FROM DemoTable1;
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 210 | Adam |
+-----------+-------------+
mysql> SELECT * FROM DemoTable2;
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 100 | Chris |
+-----------+----------+
Truy vấn UNION + IN
Gộp hai bảng, sau đó lọc StudentId trong danh sách:
mysql> SELECT StudentName FROM (
-> SELECT StudentId, StudentName FROM DemoTable1
-> UNION
-> SELECT StudentId, StudentName FROM DemoTable2
-> ) AS tbl
-> WHERE StudentId IN (210, 100);
Kết quả
+-------------+
| StudentName |
+-------------+
| Adam |
| Chris |
+-------------+
Lưu ý: UNION loại bỏ trùng lặp; dùng UNION ALL nếu muốn giữ trùng. Subquery别名 tbl bắt buộc.