Rumah >pangkalan data >tutorial mysql >Inner vs. Outer bergabung: Apa perbezaannya?

Inner vs. Outer bergabung: Apa perbezaannya?

Susan Sarandon
Susan Sarandonasal
2025-01-25 17:47:11391semak imbas

Inner vs. Outer Joins: What's the Difference?

Pemahaman mendalam tentang perbezaan antara cantuman dalam dan cantuman luar

Pernyataan gabungan ialah teras dalam operasi pangkalan data, yang membolehkan kami menggabungkan data daripada berbilang jadual berdasarkan keadaan tertentu. Adalah penting untuk memahami jenis cantuman yang berbeza, dengan cantuman dalam dan cantuman luar menjadi dua kategori utama.

Perbezaan antara sambung dalam dan sambung luar

Inner join hanya mengembalikan rekod yang memenuhi syarat join. Ia serupa dengan persilangan dua set, menghasilkan hanya elemen yang terdapat dalam kedua-dua set. Gabungan luar, sebaliknya, akan mengembalikan semua rekod dari satu atau kedua-dua jadual, walaupun mereka tidak mempunyai rekod yang sepadan dalam jadual yang lain. Ini serupa dengan penyatuan dua set, termasuk elemen biasa dan unik dalam setiap set.

Variasi sambungan luar

Terdapat tiga jenis sambungan luar utama:

  • LEFT JOIN: Menyimpan semua rekod dari jadual kiri (A) dan termasuk rekod yang sepadan dari jadual kanan (B). Nilai dalam B yang tidak sepadan dengan rekod akan diberikan NULL.
  • KANAN SERTAI: Sama seperti LEFT JOIN, tetapi memberi keutamaan kepada rekod dari jadual kanan (B). Nilai dalam A yang tidak sepadan dengan rekod akan diberikan NULL.
  • SERTAI PENUH: Menggabungkan semua rekod daripada dua jadual (A dan B). Rekod yang tidak mempunyai rekod yang sepadan dalam jadual lain akan diberikan nilai NULL.

Contoh menggunakan set data ringkas

Pertimbangkan borang berikut:

表 A 表 B
1 3
2 4
3 5
4 6

Sambungan dalaman:

<code class="language-sql">SELECT * FROM A INNER JOIN B ON A.a = B.b;</code>

Output:

a b
3 3
4 4

Cantum luar kiri:

<code class="language-sql">SELECT * FROM A LEFT JOIN B ON A.a = B.b;</code>

Output:

a b
1 NULL
2 NULL
3 3
4 4

Sambungan luar kanan:

<code class="language-sql">SELECT * FROM A RIGHT JOIN B ON A.a = B.b;</code>

Output:

a b
3 3
4 4
NULL 5
NULL 6

Sambungan luar penuh:

<code class="language-sql">SELECT * FROM A FULL OUTER JOIN B ON A.a = B.b;</code>

Output:

a b
1 NULL
2 NULL
3 3
4 4
NULL 5
NULL 6

Dengan memahami perbezaan antara cantuman dalaman dan luaran, pembangun boleh memanipulasi data dengan berkesan dan mengekstrak perhubungan bermakna daripada berbilang jadual.

Atas ialah kandungan terperinci Inner vs. Outer bergabung: Apa perbezaannya?. 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