Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีหาความแตกต่างระหว่างตารางด้วย MySQL joins

หาความต่างระหว่างตารางด้วย UNION ของ Exclusion Joins

สามารถหาความต่าง (differences) ระหว่างตารางได้โดยการ UNION ของ exclusion joins จากตารางแรกไปตารางที่สอง และจากตารางที่สองไปตารางแรก

ตัวอย่าง

ตาราง value1 และ value2:

mysql> Select * from value1;
+-----+-----+
| i   | j   |
+-----+-----+
| 1   | 1   |
| 2   | 2   |
+-----+-----+

mysql> Select * from value2;
+------+------+
| i    | j    |
+------+------+
| 1    | 1    |
| 3    | 3    |
+------+------+

คำสั่งหาความต่าง (DIFFERENCE):

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)

ผลลัพธ์คือแถวที่มีใน value1 แต่ไม่มีใน value2 (i=2,j=2) และแถวที่มีใน value2 แต่ไม่มีใน value1 (i=3,j=3)