我在 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 中不支持。
有人可以帮我吗?谢谢提前。
最佳答案
表A中的数据
SELECT * FROM TableA;
+---------+--------+
| prod_id | cat_id |
+---------+--------+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
+---------+--------+
3 rows in set (0.00 sec)
表B中的数据
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同样的。
关于mysql - 从一个表中减去另一表的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21294669/