Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah kita boleh mensimulasikan pertanyaan MySQL MINUS?

Bagaimanakah kita boleh mensimulasikan pertanyaan MySQL MINUS?

WBOY
WBOYke hadapan
2023-09-09 14:49:061187semak imbas

我们如何模拟 MySQL MINUS 查询?

Memandangkan kami tidak boleh menggunakan pertanyaan MINUS dalam MySQL, kami akan menggunakan JOIN untuk mensimulasikan pertanyaan MINUS. Ia boleh difahami melalui 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 JOINS akan mensimulasikan MINUS untuk mengembalikan Student_info " nilai 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 Bagaimanakah kita boleh 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