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

ฉันจะเลือกข้อมูลจากตารางเดียวโดยที่ค่าคอลัมน์จากตารางนั้นตรงกับค่าคอลัมน์ของตารางอื่นใน MySQL ได้อย่างไร


สำหรับสิ่งนี้ คุณสามารถใช้แบบสอบถามย่อยพร้อมกับ EXISTS ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1 -> ( -> Id int, -> SubjectName varchar(20) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.58 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable1 (111,'MySQL'); เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงในค่า DemoTable1 (112, 'MongoDB'); เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.15 วินาที )mysql> แทรกลงในค่า DemoTable1 (113,'Java'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า DemoTable1 (114, 'C'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.27 วินาที) mysql> แทรกลงในค่า DemoTable1 (115,'MySQL'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.23 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก * จาก DemoTable1;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------+-------------+| รหัส | SubjectName |+------+-------------+| 111 | MySQL || 112 | MongoDB || 113 | ชวา || 114 | ค || 115 | MySQL |+------+-------------+5 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อสร้างตารางที่สอง -

mysql> สร้างตาราง DemoTable2 -> ( -> FirstName varchar(20), -> StudentSubject varchar(20) -> );Query OK, 0 แถวได้รับผลกระทบ (0.73 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable2 ('Chris', 'MySQL'); เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า DemoTable2 ('Bob', 'MySQL'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable2 ('Sam', 'MySQL'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable2 ('Carol', 'C'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.19 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก * จาก DemoTable2;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----------+----------------+| ชื่อจริง | StudentSubject |+----------+----------------+| คริส | MySQL || บ๊อบ | MySQL || แซม | MySQL || แครอล | C |+-----------+----------------+4 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเลือกข้อมูลจากตารางเดียวโดยที่ค่าคอลัมน์จากตารางนั้นตรงกับค่าคอลัมน์ของตารางอื่น -

mysql> เลือก Id จาก DemoTable1 -> ที่มีอยู่ -> ( -> เลือก 1 จาก DemoTable2 -> โดยที่ SubjectName=StudentSubject -> );

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------+| รหัส |+------+| 111 || 114 || 115 |+------+3 แถวในชุด (0.00 วินาที)