Rumah >pangkalan data >tutorial mysql >Bagaimana untuk menggunakan MySQL LEFT JOIN untuk mensimulasikan pertanyaan MySQL MINUS?

Bagaimana untuk menggunakan MySQL LEFT JOIN untuk mensimulasikan pertanyaan MySQL MINUS?

王林
王林ke hadapan
2023-09-16 11:09:15785semak imbas

如何使用MySQL LEFT JOIN 来模拟MySQL MINUS 查询?

Memandangkan kami tidak boleh menggunakan pertanyaan MINUS dalam MySQL, kami akan menggunakan LEFT JOIN untuk mensimulasikan pertanyaan MINUS. Ia boleh difahami dengan bantuan contoh berikut:

Contoh

Dalam contoh ini kita mempunyai dua jadual iaitu Student_detail dan Student_info dengan data berikut-

mysql> Select * from Student_detail;
+-----------+---------+------------+------------+
| studentid | Name    | Address    | Subject    |
+-----------+---------+------------+------------+
| 101       | YashPal | Amritsar   | History    |
| 105       | Gaurav  | Chandigarh | Literature |
| 130       | Ram     | Jhansi     | Computers  |
| 132       | Shyam   | Chandigarh | Economics  |
| 133       | Mohan   | Delhi      | Computers  |
| 150       | Rajesh  | Jaipur     | Yoga       |
| 160       | Pradeep | Kochi      | Hindi      |
+-----------+---------+------------+------------+
7 rows in set (0.00 sec)

mysql> Select * from Student_info;
+-----------+-----------+------------+-------------+
| studentid | Name      | Address    | Subject     |
+-----------+-----------+------------+-------------+
| 101       | YashPal   | Amritsar   | History     |
| 105       | Gaurav    | Chandigarh | Literature  |
| 130       | Ram       | Jhansi     | Computers   |
| 132       | Shyam     | Chandigarh | Economics   |
| 133       | Mohan     | Delhi      | Computers   |
| 165       | Abhimanyu | Calcutta   | Electronics |
+-----------+-----------+------------+-------------+
6 rows in set (0.00 sec)

Kini pertanyaan berikut menggunakan LEFT JOIN akan mensimulasikan MINUS untuk mengembalikan Student_info " studentid" dalam , tetapi tidak mengembalikan nilai daripada jadual Student_detail.

mysql> SELECT studentid from student_info LEFT JOIN Student_detail USING(studentid) WHERE student_detail.studentid IS NULL;
+-----------+
| studentid |
+-----------+
|       165 |
+-----------+
1 row in set (0.07 sec)

Sekarang, pertanyaan berikut akan memberikan kita hasil yang bertentangan dengan pertanyaan di atas iaitu ia akan mengembalikan nilai "studentid" dalam Student_detail tetapi tidak akan mengembalikan nilai dalam jadual Student_info.

rreeee

Atas ialah kandungan terperinci Bagaimana untuk menggunakan MySQL LEFT JOIN untuk mensimulasikan pertanyaan MySQL MINUS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam