Rumah >pangkalan data >tutorial mysql >Bagaimanakah gabungan dalaman, kiri, kanan, dan penuh berbeza dalam SQL?

Bagaimanakah gabungan dalaman, kiri, kanan, dan penuh berbeza dalam SQL?

Linda Hamilton
Linda Hamiltonasal
2025-01-25 15:07:09666semak imbas

How Do INNER, LEFT, RIGHT, and FULL JOINs Differ in SQL?

Pemahaman mendalam tentang SQL JOIN: penjelasan terperinci tentang INNER, KIRI, KANAN dan PENUH JOIN

SQL JOIN ialah operasi teras dalam pengambilan data, membolehkan kami menggabungkan baris daripada berbilang jadual berdasarkan medan biasa. Dalam MySQL, terdapat beberapa jenis JOIN untuk dipilih, masing-masing menyediakan cara khusus untuk mengendalikan padanan dan baris yang tidak sepadan.

Perbezaan antara jenis SQL JOIN yang berbeza

SERTAI DALAM

  • Sertai dua jadual berdasarkan keadaan yang sepadan.
  • Hanya kembalikan baris yang medan sepunya sepadan dalam kedua-dua jadual.

KIRI SERTAI

  • Sertai dua jadual berdasarkan keadaan yang sepadan.
  • Mengembalikan semua baris dari jadual kiri, walaupun tiada baris yang sepadan dalam jadual kanan.
  • Baris tidak sepadan dalam jadual kanan diisi dengan nilai NULL.

KANAN SERTAI

  • Serupa dengan LEFT JOIN, tetapi mengembalikan semua baris dari jadual kanan, walaupun tiada baris yang sepadan dalam jadual kiri.
  • Baris tidak sepadan dalam jadual kiri diisi dengan nilai NULL.

SERTAI PENUH

  • Hasil gabungan KIRI dan KANAN OUTER JOIN.
  • Mengembalikan semua baris daripada kedua-dua jadual, tidak kira sama ada terdapat padanan.
  • Baris tidak sepadan dalam mana-mana jadual diisi dengan nilai NULL.

Kes sebenar

Pertimbangkan jadual contoh berikut:

<code>表A:
| id | firstName | lastName |
|---|---|---|
| 1 | Arun | Prasanth |
| 2 | Ann | Antony |
| 3 | Sruthy | Abc |
| 6 | New | Abc |

表B:
| id2 | age | place |
|---|---|---|
| 1 | 24 | Kerala |
| 2 | 24 | Usa |
| 3 | 25 | Ekm |
| 5 | 24 | Chennai |</code>

SERTAI DALAM:

<code>SELECT *
FROM 表A
INNER JOIN 表B
ON 表A.id = 表B.id2;</code>

Keputusan:

firstName lastName age place
Arun Prasanth 24 Kerala
Ann Antony 24 Usa
Sruthy Abc 25 Ekm

KIRI SERTAI:

<code>SELECT *
FROM 表A
LEFT JOIN 表B
ON 表A.id = 表B.id2;</code>

Keputusan:

firstName lastName age place
Arun Prasanth 24 Kerala
Ann Antony 24 Usa
Sruthy Abc 25 Ekm
New Abc NULL NULL

KANAN SERTAI:

<code>SELECT *
FROM 表A
RIGHT JOIN 表B
ON 表A.id = 表B.id2;</code>

Keputusan:

firstName lastName age place
Arun Prasanth 24 Kerala
Ann Antony 24 Usa
Sruthy Abc 25 Ekm
NULL NULL 24 Chennai

Penuh Sertai:

<code>表A:
| id | firstName | lastName |
|---|---|---|
| 1 | Arun | Prasanth |
| 2 | Ann | Antony |
| 3 | Sruthy | Abc |
| 6 | New | Abc |

表B:
| id2 | age | place |
|---|---|---|
| 1 | 24 | Kerala |
| 2 | 24 | Usa |
| 3 | 25 | Ekm |
| 5 | 24 | Chennai |</code>
<:> Hasil:

Atas ialah kandungan terperinci Bagaimanakah gabungan dalaman, kiri, kanan, dan penuh berbeza dalam SQL?. 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