Rumah  >  Artikel  >  pangkalan data  >  Cara menggunakan subquery MySQL

Cara menggunakan subquery MySQL

王林
王林ke hadapan
2023-06-02 23:09:411508semak imbas

Subkueri berkorelasi

Proses pelaksanaan subkueri berkorelasi

Jika pelaksanaan subkueri bergantung pada pertanyaan luaran, ia biasanya kerana jadual dalam subkueri menggunakan jadual luaran Dan korelasi bersyarat dilakukan, jadi setiap kali pertanyaan luaran dilaksanakan, subkueri mesti dikira semula subkueri sedemikian dipanggil subkueri berkorelasi. Memandangkan setiap baris pertanyaan utama dilaksanakan, subkueri berkorelasi dilaksanakan dalam susunan baris demi baris.

Cara menggunakan subquery MySQL

Arahan: Gunakan lajur dalam pertanyaan utama dalam subkueri

Tajuk: Soal nama keluarga, gaji dan jumlah pekerja yang gajinya lebih besar daripada gaji purata jabatan Jabatannya

Kaedah 1: Subquery berkaitan

Cara menggunakan subquery MySQL

Guna subquery dalam FROM

SELECT last_name,salary,e1.department_id
FROM employees e1,(SELECT department_id,AVG(salary) dept_avg_sal FROM employees GROUP
BY department_id) e2
WHERE e1.`department_id` = e2.department_id
AND e2.dept_avg_sal < e1.`salary`;

subquery jenis: subquery As sebahagian daripada daripada, subkueri mesti dipetik dengan (), dan subkueri mesti dinamakan

, dan digunakan sebagai "jadual maya sementara".

Tajuk: Pertanyaan ID pekerja, gaji, diisih mengikut nama_jabatan

Gunakan subkueri mengikut URUSAN:

SELECT employee_id,salary
FROM employees e
ORDER BY (
SELECT department_name
FROM departments d
WHERE e.`department_id` = d.`department_id`
);

WUJUD dan TIDAK WUJUD kata kunci

Subkueri yang berkaitan adalah biasanya digunakan bersama dengan operator EXISTS untuk menyemak sama ada terdapat baris yang memenuhi syarat dalam subquery.

Jika tiada baris yang memenuhi syarat dalam subkueri:

Syarat itu kembali SALAH

Teruskan carian dalam subkueri

Jika dalam subkueri Terdapat baris yang memenuhi syarat:

Jangan teruskan mencari dalam subkueri

Syarat mengembalikan BENAR

TIDAK WUJUD kata kunci bermakna jika keadaan tertentu tidak wujud , TRUE dikembalikan, jika tidak, Kembalikan FALSE.

Tajuk: Tanya id_pekerja, nama_keluarga, id_kerja, id_jabatan pengurus syarikat

SELECT employee_id, last_name, job_id, department_id
FROM employees e1
WHERE EXISTS ( SELECT *
FROM employees e2
WHERE e2.manager_id =
e1.employee_id);

Subkueri sebenarnya adalah penghakiman bersyarat selepas membuat pertanyaan melalui jadual yang tidak diketahui, manakala penyertaan diri adalah berdasarkan pada jadual datanya sendiri yang diketahui

melaksanakan pertimbangan bersyarat, jadi pemprosesan gabungan sendiri dioptimumkan dalam kebanyakan DBMS.

Atas ialah kandungan terperinci Cara menggunakan subquery MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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