Melayari Perbezaan Antara Cantuman Asli dan Dalaman
Dalam bidang pertanyaan pangkalan data, dua jenis cantuman biasa muncul: cantuman semula jadi dan dalam menyertai. Walaupun kedua-duanya berkongsi tujuan menggabungkan baris daripada berbilang jadual berdasarkan nilai lajur yang dikongsi, pendekatan dan hasil kedua-duanya berbeza.
Penyertaan Semulajadi: Menyatukan Nama Lajur Dikongsi
Semula jadi join secara automatik mengenal pasti dan memasangkan semua lajur dengan nama yang sama merentas jadual yang dicantumkan. Dengan mengikat baris berdasarkan lajur yang sepadan ini, ia menghapuskan lebihan, menghasilkan jadual dengan lajur unik sahaja. Dalam contoh yang diberikan:
TableA: |Column1 | Column2 | TableB: |Column1 | Column3 |
Sambungan semula jadi pada Lajur1 menghasilkan:
+------------+------+--------+ | Column1 | Column2 | Column3 | +------------+------+--------+ | 1 | 2 | 3 | +------------+------+--------+
Lajur1, lajur kongsi, ditinggalkan dalam output.
Sertai Dalam: Rujukan Lajur Tepat
Tidak seperti semula jadi rakan sejawatannya, cantuman dalaman secara eksplisit menyatakan lajur yang digunakan untuk pemadanan. Ini membolehkan kawalan tepat ke atas operasi gabungan. Dalam contoh yang sama, cantuman dalam menggunakan Column1 kerana keadaan cantum akan kembali:
+------------+------+--------+--------+ | a.Column1 | a.Column2 | b.Column1 | b.Column3 | +------------+------+--------+--------+ | 1 | 2 | 1 | 3 | +------------+------+--------+--------+
Kedua-dua a.Column1 dan b.Column1 dikekalkan dalam output. Ini mungkin diingini jika mengekalkan nama lajur asal adalah penting.
Memilih Gabungan Yang Tepat
Menentukan cantuman yang menggunakan engsel pada keperluan khusus. Jika mengelak lajur berlebihan adalah keutamaan, gabungan semula jadi terbukti berkesan. Walau bagaimanapun, jika rujukan lajur eksplisit adalah yang terpenting, gabungan dalaman menawarkan kawalan yang lebih besar.
Atas ialah kandungan terperinci Natural Join vs Inner Join: Bilakah Saya Perlu Menggunakan Setiap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!