Sertai berbilang jadual SQL menggunakan ID
Dalam pengurusan pangkalan data, menyertai jadual ialah operasi utama dalam mendapatkan dan mengaitkan data daripada pelbagai sumber data. Apabila bekerja dengan set data yang saling berkaitan, jadual perlu digabungkan berdasarkan pengecam biasa.
Pertimbangkan senario berikut:
Anda mempunyai empat jadual berbeza bernama JadualA, JadualB, JadualC dan JadualD. Struktur mereka adalah seperti berikut:
<code>TableA - aID | nameA | dID TableB - bID | nameB | cID | aID TableC - cID | nameC | date TableD - dID | nameD</code>
Bermula dari TableA, anda menyasarkan untuk melakukan gabungan dengan TableB melalui lajur kongsi "aID". Selain itu, anda ingin menyambungkan TableA dengan TableC menggunakan TableB sebagai perantara. Pernyataan SQL berikut mencapai ini:
<code>SELECT TableA.*, TableB.*, TableC.* FROM (TableB INNER JOIN TableA ON TableB.aID= TableA.aID) INNER JOIN TableC ON(TableB.cID= Tablec.cID) WHERE (DATE(TableC.date)=date(now()))</code>
Walau bagaimanapun, apabila cuba memasukkan JadualD ke dalam pertanyaan menggunakan lajur 'dID', saya menghadapi ralat yang menyatakan bahawa 'TableD' tidak diketahui.
Penyelesaian terletak pada menambah penyataan gabungan lain. Versi pertanyaan yang diperbetulkan dibentangkan di bawah:
<code>SELECT TableA.*, TableB.*, TableC.*, TableD.* FROM TableA JOIN TableB ON TableB.aID = TableA.aID JOIN TableC ON TableC.cID = TableB.cID JOIN TableD ON TableD.dID = TableA.dID WHERE DATE(TableC.date)=date(now())</code>
Dalam pertanyaan yang diubah suai ini, TableA disambungkan terus ke TableD melalui lajur "dID". Pendekatan ini berjaya menggabungkan keempat-empat jadual, membolehkan anda mendapatkan semula data daripada semua jadual dengan cara yang koheren.
Atas ialah kandungan terperinci Bagaimana untuk Menyertai Empat Jadual SQL dengan Cekap dengan ID Dikongsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!