Pengenalan kepada MySQL Query Connection
Dalam pengurusan pangkalan data, sambungan pertanyaan adalah bahagian yang sangat penting. Sertai merujuk kepada proses penggabungan dua atau lebih jadual berdasarkan perhubungan antara mereka untuk melengkapkan pertanyaan data. Dalam MySQL, kita boleh melaksanakan sambungan pertanyaan dengan menggunakan pernyataan JOIN. Artikel ini akan memberikan pengenalan yang mendalam tentang penggunaan sambungan pertanyaan MySQL.
Klasifikasi sambungan pertanyaan MySQL
Sambungan pertanyaan MySQL terbahagi terutamanya kepada tiga kategori: sambung dalam, sambung luar dan sambung silang.
Inner join bermakna terdapat hubungan yang sepadan antara rekod dalam dua atau lebih jadual Perhubungan ini boleh diwakili oleh kunci utama dan kunci asing . Inner bergabung dengan hasil pulangan dengan mengekalkan rekod yang sama. Iaitu, hasil pertanyaan akan dikembalikan hanya jika rekod yang sepadan wujud dalam kedua-dua jadual.
Sintaks cantuman dalam adalah seperti berikut:
PILIH col1, col2, ...
DARI jadual1
jadual JOIN DALAM2
PADA table1.column1 = table2. column2;
Antaranya, col1, col2, ... ialah lajur yang akan dikembalikan; jadual1 dan jadual2 ialah jadual untuk disoal, dan lajur1 dan lajur2 ialah lajur yang menghubungkan jadual. | satu jadual tidak mempunyai rekod yang sepadan daripada jadual yang lain.
PILIH col1, col2, ...
DARI jadual1LEFT JOIN table2
ON table1.column1 = table2. column2;Cantum kanan: Cantuman kanan serupa dengan cantuman kiri, kecuali peranan jadual kiri dan jadual kanan diterbalikkan.
Sintaks cantuman kanan adalah seperti berikut:
PILIH col1, col2, ...
KANAN JOIN table2
PADA table1.column1 = table2. column2;Nota: Dalam MySQL, terdapat juga FULL OUTER JOIN untuk sambungan luar, tetapi MySQL tidak menyokongnya. Oleh itu, kita boleh mensimulasikan gabungan luar penuh melalui pernyataan UNION.
Cross join (CROSS JOIN)
Cantum silang merujuk kepada cantuman tanpa sebarang syarat cantum antara dua atau lebih jadual. Ringkasnya, cantuman silang membolehkan anda menanyakan semua kombinasi yang mungkin.
CROSS JOIN table2;
Di mana, col1 , col2, ... ialah lajur yang akan dikembalikan; jadual1 dan jadual2 ialah jadual yang akan ditanya.
Contoh aplikasi sambungan pertanyaan MySQL
Sekarang marilah kita memahami penggunaan sambungan pertanyaan MySQL melalui beberapa contoh praktikal.
Contoh 1: Inner join
Andaikan kita mempunyai dua jadual pelajar dan kursus lajur dan kandungannya adalah seperti berikut:
jadual pelajar:
<.>jadual kursus:
Sekarang kita ingin menanyakan kursus yang dipilih oleh setiap pelajar, kita boleh menggunakan pernyataan SQL berikut: PILIH nama pelajar, nama_kursusid | name | age |
---|---|---|
1 | Jack | 18 |
2 | Tom | 19 |
3 | Jerry | 20 |
4 | Bob | 18 |
KURSUS JOIN DALAM
ON student.id = course.student_id;course_id | course_name | student_id |
---|---|---|
1 | Math | 1 |
2 | English | 2 |
3 | Science | 2 |
4 | History | 3 |
Pertanyaan ini akan mengembalikan hasil berikut:
Contoh 2: Sertai Kiri
Masih mengambil jadual pelajar dan jadual kursus di atas sebagai contoh, jika kita ingin menanyakan kursus yang dipilih oleh setiap pelajar, termasuk pelajar yang tidak memilih kursus. Anda boleh menggunakan pernyataan SQL berikut:
PILIH nama pelajar, nama_kursus.
DARI pelajarname | course_name |
---|---|
Jack | Math |
Tom | English |
Tom | Science |
Jerry | History |
PILIH student.id = course.student_id;
Pertanyaan akan mengembalikan hasil berikut:
Contoh 3: Sertai Kanan
Teruskan menggunakan jadual pelajar dan jadual kursus di atas sebagai contoh, jika kita ingin menanyakan pelajar setiap kursus, termasuk Pelajar yang belum memilih kursus ini. Anda boleh menggunakan pernyataan SQL berikut:
PILIH nama pelajar, nama_kursus.
DARI pelajarname | course_name |
---|---|
Jack | Math |
Tom | English |
Tom | Science |
Jerry | History |
Bob | NULL |
ON student.id = course.student_id;
Pertanyaan ini akan mengembalikan hasil berikut:
Contoh 4: Sambungan silang
Sambungan silang membolehkan anda menanyakan semua kombinasi yang mungkin Contohnya, kami mempunyai jadual yang mengandungi tiga elemen A, B dan C:
jadual1:
id | name |
---|---|
1 | A |
2 | B |
3 | C |
DARI jadual1 t1
CROSS JOIN table1 t2;
name | name |
---|---|
A | A |
A | B |
A | C |
B | A |
B | B |
B | C |
C | A |
C | B |
C | C |
Atas ialah kandungan terperinci sambungan pertanyaan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!