Rumah >pangkalan data >tutorial mysql >CROSS JOIN lwn. INNER JOIN dalam SQL: Bila Untuk Menggunakan Setiap Jenis Sertaan?

CROSS JOIN lwn. INNER JOIN dalam SQL: Bila Untuk Menggunakan Setiap Jenis Sertaan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-22 10:16:09610semak imbas

CROSS JOIN vs. INNER JOIN in SQL: When to Use Each Join Type?

Cross join (CROSS JOIN) dan inner join (INNER JOIN) dalam SQL: Perbandingan komprehensif

SQL menyediakan dua jenis sambungan yang berbeza: CROSS JOIN dan INNER JOIN, setiap jenis sambungan mempunyai senario aplikasinya sendiri. Artikel ini melihat secara mendalam perbezaan antara kedua-dua jenis ketersambungan ini, menyerlahkan faedah dan kes penggunaannya.

CROSS JOIN: Produk Cartesian

Cambung silang, juga dikenali sebagai produk Cartesian, menggabungkan setiap baris dalam jadual pertama dengan setiap baris dalam jadual kedua. Ini akan menjana jadual baharu yang mengandungi semua kemungkinan kombinasi baris daripada jadual yang dicantumkan.

Tatabahasa:

<code class="language-sql">SELECT *
FROM Table1 CROSS JOIN Table2</code>

Contoh:

Pertimbangkan gabungan silang antara jadual 'Pelanggan' dan jadual 'Filem':

<code class="language-sql">SELECT 
    Movies.CustomerID, Movies.Movie, Customers.Age, 
    Customers.Gender, Customers.[Education Level], 
    Customers.[Internet Connection], Customers.[Marital Status], 
FROM   
    Customers 
CROSS JOIN 
    Movies</code>

Pertanyaan ini akan mengembalikan setiap kemungkinan pasangan pelanggan dan filem, menghasilkan bilangan baris yang banyak.

SERTAI DALAM: Hadkan keputusan

Gabung dalam hanya mengembalikan baris yang memenuhi syarat yang dinyatakan dalam klausa ON. Ia hanya memilih baris dalam kedua-dua jadual yang mempunyai nilai yang sepadan.

Tatabahasa:

<code class="language-sql">SELECT *
FROM Table1 INNER JOIN Table2 ON Table1.Column = Table2.Column</code>

Contoh:

Menggunakan jadual yang sama seperti sebelum ini, mari buat gabungan dalaman menggunakan lajur CustomerID:

<code class="language-sql">SELECT 
    Movies.CustomerID, Movies.Movie, Customers.Age, 
    Customers.Gender, Customers.[Education Level], 
    Customers.[Internet Connection], Customers.[Marital Status]
FROM   
    Customers 
INNER JOIN 
    Movies ON Customers.CustomerID = Movies.CustomerID</code>

Pertanyaan ini hanya akan mengembalikan CustomerID baris yang sepadan daripada jadual 'Pelanggan' dan jadual 'Filem', memberikan hasil yang lebih berkaitan dan ditapis.

Pilih jenis sambungan

Pilihan cantuman silang dan cantuman dalam bergantung pada keperluan khusus pertanyaan.

  • CROSS JOIN: Digunakan apabila anda memerlukan semua kemungkinan gabungan baris dalam dua jadual.
  • SERTAI DALAM: Digunakan apabila anda perlu mengambil hanya baris tersebut daripada dua jadual yang mempunyai nilai yang sepadan.

Secara amnya, adalah disyorkan untuk menggunakan cantuman dalam kerana kecekapan dan keupayaannya yang lebih tinggi untuk menapis hasil, manakala cantuman silang berguna dalam senario tertentu di mana produk Cartesan diperlukan.

Atas ialah kandungan terperinci CROSS JOIN lwn. INNER JOIN dalam SQL: Bila Untuk Menggunakan Setiap Jenis Sertaan?. 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