Rumah >pangkalan data >tutorial mysql >Analisis contoh pertanyaan sambungan dalam MySQL
Jadual 1 mempunyai m baris data, Jadual 2 mempunyai n baris data dan hasil pertanyaan mempunyai m*n baris daripada data.
standard sql92: hanya menyokong cantuman dalaman
standard sql99 (disyorkan): menyokong cantuman dalaman, Cantuman luar (cantuman luar kiri dan cantuman luar kanan), cantuman silang
Cantuman dalam: Cantuman setara, cantuman bukan setara, cantuman sendiri
Sambung luar: sambung luar kiri, sambung luar kanan, sambung luar penuh
sambung silang
(1) Tanya nama gadis itu dan yang sepadan. Nama teman lelaki
SELECT girlname, boyname FROM boys, girls WHERE girls.boyfriend_id=boys.girlfriend_id;
(2) Tanya nama pekerja (nama belakang) dan nama jabatan yang sepadan (nama_jabatan)------------- (pertanyaan berdasarkan id yang berkaitan)
SELECT last_name, department_name FROM JDSC, SNSC WHERE JDSC.`id`=SNSC.`id`;
(3) Soal nama pekerja (nama belakang), nombor jenis pekerjaan (job_id), nama jenis pekerjaan (job_title) (jadual pekerja: JDSC work table: JOBSC) ------ Alias jadual kepada tingkatkan kesederhanaan , untuk mengelakkan kekaburan
#"e.job_id"是为了避免歧义 SELECT last_name, e.job_id, job_title FROM ESC e, JOBSC j WHERE e.`job_id`=j.`job_id`;
Nota:
Jika jadual dialiaskan, medan yang ditanya tidak boleh memenuhi syarat dengan nama jadual asal.
Turutan kedua-dua jadual di atas boleh ditukar ganti
(4) Soal nama pekerja dan jabatan dengan bonus
#员工名:last_name #部门名:department_name #奖金率:commissiom_pct SELECT last_name, department_name, commissiom_pct FROM employees e, department d WHERE e.`department_id`=d.`department_id` AND e.`commissiom_pct` IS NOT NULL;
(5) Pertanyaan kumpulan - Pertanyaan Bilangan jabatan di setiap bandar
#城市分组表名:city #部门分组表名:departments SELECT COUNT(*) 个数, city FROM departments d, locations l WHERE d.`location_id`=l.`location_id` GROUP BY city;
(6) Isih - Soal nama kerja dan bilangan pekerja untuk setiap jenis pekerjaan, dan susun mereka dalam tertib menurun mengikut bilangan pekerja
SELECT job_title, COUNT(*) FROM emloyees e, jobs j WHERE e.`job_id`=j.`job_id` GROUP BY job_title ORDER BY COUNT(*) DESC;
(7) Tiga Sambungan jadual——Pertanyakan nama pekerja, nama jabatan dan bandar
SELECT last_name, department_name, city FROM employees e, departments d, locations l WHERE e.`department_id`=d.`department_id` AND d.`location_id`=l.`location_id` AND city LIKE 's%';
Atas ialah kandungan terperinci Analisis contoh pertanyaan sambungan dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!