簡體   English   中英

從另一個表中減去一個表的行

[英]Subtract rows of one table from another table

我在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相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM