Rumah  >  Artikel  >  pangkalan data  >  sambungan pertanyaan mysql

sambungan pertanyaan mysql

PHPz
PHPzasal
2023-05-08 10:25:084744semak imbas

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.

  1. INNER JOIN

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.

    Cantum kiri: Cantuman kiri bermakna jadual kiri mengambil semua rekod, manakala jadual kanan hanya mengambil rekod yang sepadan. Jika tiada rekod yang sepadan antara jadual kiri dan jadual kanan, jadual kanan akan mengembalikan nilai NULL.
  1. Sintaks gabungan kiri adalah seperti berikut:

PILIH col1, col2, ...

DARI jadual1

LEFT 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, ...

DARI jadual1

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.

    Sintaks cantuman silang adalah seperti berikut:
  1. PILIH col1, col2, ...
DARI jadual1

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_kursus
id name age
1 Jack 18
2 Tom 19
3 Jerry 20
4 Bob 18
DARI pelajar

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 pelajar
name course_name
Jack Math
Tom English
Tom Science
Jerry History
KIRI SERTAI kursus

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 pelajar
name course_name
Jack Math
Tom English
Tom Science
Jerry History
Bob NULL
KANAN SERTAI kursus

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
Kita boleh menggunakan pernyataan SQL berikut untuk melaksanakan cantuman silang:

PILIH t1.name, t2.name

DARI jadual1 t1
CROSS JOIN table1 t2;

Pertanyaan ini akan mengembalikan hasil berikut:

name name
A A
A B
A C
B A
B B
B C
C A
C B
C C
Kesimpulan

Sambungan pertanyaan MySQL ialah bahagian penting dalam bahasa SQL dan boleh membantu kami menanyakan data yang mengandungi perhubungan. Dalam artikel ini, kami memperkenalkan contoh sintaks dan aplikasi bagi empat cantuman: cantuman dalam, cantuman kiri, cantuman kanan dan cantuman silang. Harap artikel ini membantu anda menggunakan sambungan pertanyaan MySQL.

Atas ialah kandungan terperinci sambungan pertanyaan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:penukaran pengekodan mysqlArtikel seterusnya:penukaran pengekodan mysql