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

วิธีใช้งาน INTERSECTION ระหว่างตารางด้วย MySQL JOIN

การทำ INTERSECTION ด้วย INNER JOIN

ใน MySQL ไม่มีคำสั่ง INTERSECT โดยตรง แต่สามารถทำได้โดยใช้ INNER JOIN บนทุกคอลัมน์ ซึ่งจะคืนค่าเฉพาะแถวที่ตรงกันทั้งหมดระหว่างสองตาราง

ตัวอย่างข้อมูล

ตาราง value1 และ value2 มีโครงสร้างและข้อมูลดังนี้:

mysql> SELECT * FROM value1;
+------+------+
| i    | j    |
+------+------+
| 1    | 1    |
| 2    | 2    |
+------+------+

mysql> SELECT * FROM value2;
+------+------+
| i    | j    |
+------+------+
| 1    | 1    |
| 3    | 3    |
+------+------+

คำสั่งสำหรับ INTERSECTION

ใช้ JOIN ... USING(i,j) เพื่อจับคู่ทุกคอลัมน์:

mysql> SELECT * FROM value1 JOIN value2 USING(i,j);
+------+------+
| i    | j    |
+------+------+
| 1    | 1    |
+------+------+

ผลลัพธ์คือแถวเดียวที่มีค่า (1,1) ซึ่งเป็นข้อมูลที่ซ้ำกันในทั้งสองตาราง

สรุป

  • INNER JOIN บนทุกคอลัมน์ = INTERSECTION
  • เหมาะสำหรับหาข้อมูลที่ตรงกันทุกฟิลด์ระหว่างตาราง
  • ประสิทธิภาพดีกว่าการใช้คำสั่ง INTERSECT ในฐานข้อมูลอื่น