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

MySQL ส่งคืนอะไรหากฉันไม่ได้ใช้คำหลัก 'RIGHT' หรือ 'LEFT' ขณะเขียนแบบสอบถามสำหรับ RIGHT JOIN หรือ LEFT JOIN


ในทั้งสองกรณี เช่น ไม่ได้ใช้คีย์เวิร์ด 'RIGHT' หรือ 'LEFT' ในเคียวรี MySQL จะส่งคืนผลลัพธ์โดยใช้เป็นคิวรี INNER JOIN เป็นเพราะความแตกต่างเพียงอย่างเดียวระหว่าง RIGHT, LEFT และ INNER JOIN คือคีย์เวิร์ดของ RIGHT หรือ LEFT เพื่อให้เข้าใจ เรากำลังยกตัวอย่างของสองตารางชื่อ tbl_1 และ tbl_2 ซึ่งมีข้อมูลดังต่อไปนี้ -

mysql> Select * from tbl_1;
+----+--------+
| Id | Name   |
+----+--------+
| 1  | Gaurav |
| 2  | Rahul  |
| 3  | Raman  |
| 4  | Aarav  |
+----+--------+
4 rows in set (0.00 sec)

mysql> Select * from tbl_2;
+----+---------+
| Id | Name    |
+----+---------+
| A  | Aarav   |
| B  | Mohan   |
| C  | Jai     |
| D  | Harshit |
+----+---------+
4 rows in set (0.00 sec)

ตอนนี้ การค้นหา RIGHT JOIN ด้วยคีย์เวิร์ด RIGHT อาจเป็นดังนี้ -

mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 RIGHT JOIN tbl_2 ON tbl_1.name = tbl_2.name;
+------+----+
| id   | id |
+------+----+
| 4    | A  |
| NULL | B  |
| NULL | C  |
| NULL | D  |
+------+----+
4 rows in set (0.00 sec)

ตอนนี้ ในแบบสอบถามต่อไปนี้ เราไม่ได้ใช้คำหลัก RIGHT -

mysql> Select tbl_1.id,tbl_2.id FROM tbl_1 JOIN tbl_2 ON tbl_1.name = tbl_2.name;
+----+----+
| id | id |
+----+----+
| 4  | A  |
+----+----+
1 row in set (0.00 sec)

จากชุดผลลัพธ์ข้างต้น เราสามารถสังเกตความแตกต่างที่โดยไม่ต้องใช้คำหลัก 'RIGHT' MySQL จะถือว่าเป็นแบบสอบถามสำหรับ INNER JOIN และส่งคืนผลลัพธ์ตามลำดับ

ตอนนี้ แบบสอบถามสำหรับ LEFT JOIN ด้วยคีย์เวิร์ด LEFT อาจเป็นดังนี้ -

mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 LEFT JOIN tbl_2 ON tbl_1.name = tbl_2.name;
+----+------+
| id | id   |
+----+------+
| 1  | NULL |
| 2  | NULL |
| 3  | NULL |
| 4  | A    |
+----+------+
4 rows in set (0.02 sec)

ตอนนี้ ในแบบสอบถามต่อไปนี้ เราไม่ได้ใช้คำหลัก LEFT −

mysql> Select tbl_1.id,tbl_2.id FROM tbl_1 JOIN tbl_2 ON tbl_1.name = tbl_2.name;
+----+----+
| id | id |
+----+----+
| 4  | A  |
+----+----+
1 row in set (0.00 sec)

จากชุดผลลัพธ์ข้างต้น เราสามารถสังเกตความแตกต่างที่โดยไม่ต้องใช้คำหลัก 'LEFT' MySQL จะถือว่าเป็นแบบสอบถามสำหรับ INNER JOIN และส่งคืนผลลัพธ์ตามลำดับ