我在MySql中有两个包含类似记录的表。
table-A table-B
--------------------- ---------------------
|prod_id | cat_id | |prod_id | cat_id |
--------------------- ---------------------
|1 |1 | |1 |1 |
|2 |1 | |2 |1 |
|3 |1 | |3 |1 |
|4 |1 |
|5 |1 |
现在我想比较这两个表,我的预期结果是。
---------------------
|prod_id | cat_id |
---------------------
|4 |1 |
|5 |1 |
我在sql中检查了'EXPECT','MINUS',但他们在MySql中不支持。
任何人都可以帮助我吗?谢谢你的到来。
答案 0 :(得分:3)
TableAU中的数据
SELECT * FROM TableA;
+---------+--------+
| prod_id | cat_id |
+---------+--------+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
+---------+--------+
3 rows in set (0.00 sec)
表中的数据
SELECT * FROM TableB;
+---------+--------+
| prod_id | cat_id |
+---------+--------+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
+---------+--------+
5 rows in set (0.00 sec)
结果查询
SELECT b.*
FROM TableB b
LEFT JOIN TableA a
ON a.prod_id = b.prod_id AND a.cat_id = b.cat_id
WHERE a.prod_id IS NULL;
+---------+--------+
| prod_id | cat_id |
+---------+--------+
| 4 | 1 |
| 5 | 1 |
+---------+--------+
2 rows in set (0.00 sec)
sqlfiddle相同。