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

ใช้ JOIN เพื่อเลือกบันทึกที่มีมากกว่าหนึ่งเงื่อนไขโดยใช้ AND?


ให้เราสร้างตารางสาธิตก่อน -

mysql> สร้างตาราง selectPerson -> ( -> PersonId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> PersonName varchar(20), -> PersonFavouriteFruit varchar(60) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.58 วินาที) 

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังต่อไปนี้ −

mysql> แทรกลงในค่า selectPerson(PersonName,PersonFavouriteFruit) ('John','Banana');Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า selectPerson (PersonName, PersonFavouriteFruit) ('John', 'Blackberry');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า selectPerson (PersonName,PersonFavouriteFruit) ('John','Blueberry');Query OK, 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงใน ค่า selectPerson(PersonName,PersonFavouriteFruit) ('Carol','Apple');Query OK, 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงใน selectPerson (PersonName,PersonFavouriteFruit) ค่า ('Carol','Avocado'); แบบสอบถามตกลง , 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า selectPerson(PersonName,PersonFavouriteFruit) ('Carol','Banana'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า selectPerson (PersonName, PersonFavouriteFruit) ('Sam','Ackee');Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงในค่า selectPerson(PersonName,PersonFavouriteFruit) ('Sam','Apple');Query OK, 1 แถวได้รับผลกระทบ (0.89 วินาที ec)mysql> แทรกลงในค่า selectPerson (PersonName,PersonFavouriteFruit) ('Sam','Apricots'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า selectPerson (PersonName, PersonFavouriteFruit) ('Sam',' Banana');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.27 วินาที)

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

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

นี่คือผลลัพธ์ -

<ก่อน>+----------+-----------+---------------------- +| รหัสบุคคล | ชื่อบุคคล | PersonFavouriteFruit |+----------+-----------+--------------------------------+ | 1 | จอห์น | กล้วย || 2 | จอห์น | Blackberry || 3 | จอห์น | บลูเบอร์รี่ || 4 | แครอล | แอปเปิ้ล || 5 | แครอล | อะโวคาโด || 6 | แครอล | กล้วย || 7 | แซม | แอคกี้ || 8 | แซม | แอปเปิ้ล || 9 | แซม | แอปริคอต || 10 | แซม | กล้วย |+----------+--------------------+----------------------+ 10 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อเลือกผู้ที่ชอบ Apple และ Banana ทั้ง -

mysql> SELECT tbl1.PersonName -> FROM selectPerson tbl1 เข้าร่วม selectPerson tbl2 บน tbl1.PersonName =tbl2.PersonName -> WHERE -> tbl1.PersonFavouriteFruit='Banana' -> and -> tbl2.Person'AppleFruit; 

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-----------+| ชื่อบุคคล |+-----------+| แครอล || แซม |+------------+2 แถวในชุด (0.00 วินาที)