表之間的差異如何藉助 MySQL 聯接來實現?


我們可以透過對第 1 張表和第 2 張表進行並集排除聯接以及對第 2 張表和第 1 張表進行並集排除聯接來獲取表之間的差異。為了理解這一點,我們將採用以下兩個表的示例 −

mysql> Select * from value1;
+-----+-----+
| i   | j   |
+-----+-----+
|   1 |   1 |
|   2 |   2 |
+-----+-----+
2 rows in set (0.00 sec)

mysql> Select * from value2;
+------+------+
| i    | j    |
+------+------+
|    1 |   1  |
|    3 |   3  |
+------+------+
2 rows in set (0.00 sec)

現在,以下查詢將對錶“value1”和“value2”進行差異 −

mysql> Select * from value1 left join value2 using(i,j) where value2.i is NULL UNION Select * from value2 left join value1 using(i,j) Where value1.i is NULL;
+------+-----+
| i    | j   |
+------+-----+
|    2 |   2 |
|    3 |   3 |
+-----+------+
2 rows in set (0.07 sec)

更新於: 20-6-2020

59 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始
廣告