โดยทั่วไป เราใช้ ON ใน MySQL ในการเข้าร่วม เราใช้ ON ในชุดของคอลัมน์ การใช้มีประโยชน์เมื่อทั้งสองตารางใช้คอลัมน์ที่มีชื่อเดียวกันกับที่เข้าร่วม
ตัวอย่าง On.
การสร้างตารางแรกของเรา
mysql> สร้างตาราง ForeignTableDemo -> ( -> Id int, -> Name varchar(100), -> FK int -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.47 วินาที)
กำลังสร้างตารางที่สองของเรา
mysql> สร้างตาราง PrimaryTableDemo -> ( -> FK int, -> Address varchar(100), -> primary key(FK) -> );Query OK, 0 แถวได้รับผลกระทบ (0.47 วินาที)
ให้เราเพิ่มข้อจำกัด
mysql> แก้ไขตาราง ForeignTableDemo เพิ่มข้อจำกัด FKConst foreign key(FK) อ้างอิง PrimaryTableDemo(FK) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (1.54 วินาที) ระเบียน:0 รายการซ้ำ:0 คำเตือน:0
เพื่อเพิ่มบันทึกลงในตารางที่สอง
mysql> INSERT เป็นค่า PrimaryTableDemo (1,'US');Query OK, 1 แถวได้รับผลกระทบ (0.10 วินาที)mysql> INSERT เป็นค่า PrimaryTableDemo (2,'UK');Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที )mysql> INSERT ลงในค่า PrimaryTableDemo (3,'Unknown');Query OK, 1 แถวได้รับผลกระทบ (0.08 วินาที)
กำลังแสดงรายการทั้งหมด
mysql> SELECT * จาก PrimaryTableDemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+----+---------+| FK | ที่อยู่ |+---+---------+| 1 | สหรัฐอเมริกา || 2 | สหราชอาณาจักร || 3 | Unknown |+----+---------+3 แถวในชุด (0.00 วินาที)ตอนนี้เพื่อเพิ่มระเบียนลงในตารางแรก
mysql> INSERT เป็นค่า ForeignTableDemo (1,'John',1);Query OK, 1 แถวได้รับผลกระทบ (0.20 วินาที)mysql> INSERT เป็นค่า ForeignTableDemo (2,'Bob',2); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.27 วินาที)
ให้เราแสดงระเบียนทั้งหมดจากตารางแรก
mysql> SELECT * จาก ForeignTableDemo;
นี่คือผลลัพธ์
<ก่อนหน้า>+------+------+------+| รหัส | ชื่อ | FK |+------+------+------+| 1 | จอห์น | 1 || 2 | บ๊อบ | 2 |+------+------+------+2 แถวในชุด (0.00 วินาที)แบบสอบถามสำหรับการรวมตรงที่แสดงเฉพาะแถวที่ตรงกันแสดงอยู่ด้านล่าง เราใช้ ON ที่นี่
mysql> SELECT ForeignTableDemo.Id, ForeignTableDemo.Name, PrimaryTableDemo.Address -> จาก ForeignTableDemo -> เข้าร่วม PrimaryTableDemo -> บน ForeignTableDemo.FK =PrimaryTableDemo.FK;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+------+------+---------+| รหัส | ชื่อ | ที่อยู่ |+------+------+---------+| 1 | จอห์น | สหรัฐอเมริกา || 2 | บ๊อบ | สหราชอาณาจักร |+------+------+---------+2 แถวในชุด (0.14 วินาที)ตัวอย่างการใช้
ต่อไปนี้เป็นไวยากรณ์ของ USING ใน MySQL ที่แสดงบันทึกโดยที่ FK =1
mysql> เลือก *จาก ForeignTableDemo เข้าร่วม PrimaryTableDemo โดยใช้ (FK) โดยที่ FK=1;
นี่คือผลลัพธ์
<ก่อนหน้า>+------+------+------+---------+| FK | รหัส | ชื่อ | ที่อยู่ |+------+------+------+---------+| 1 | 1 | จอห์น | US |+------+------+------+---------+1 แถวในชุด (0.09 วินาที)