Menyambung Jadual Tanpa Kekunci Asing Langsung: Memanfaatkan Jadual Perantaraan
Menyertai jadual yang tidak mempunyai hubungan utama asing langsung boleh menjadi rumit. Penyelesaiannya? Jadual perantara yang mengandungi kunci asing daripada kedua-dua jadual.
Pertimbangkan tiga jadual: Spesies, Hutan dan Pokok. Jadual Tree
dipautkan ke Species
dan Forest
melalui kunci asing, tetapi Species
dan Forest
tidak merujuk secara langsung antara satu sama lain.
Pertanyaan: Menyertai Data Spesies dan Hutan
Untuk mendapatkan semula nama hutan, nama spesies dan jenis kayu untuk hutan di rantau 'ARCTIC', gunakan pertanyaan SQL ini:
<code class="language-sql">SELECT Forest.Fo_name, Species.Sp_name, Species.Sp_woodtype FROM Forest INNER JOIN Tree ON Tree.Tr_forest = Forest.Fo_name INNER JOIN Species ON Tree.Tr_species = Species.Sp_name WHERE Forest.Fo_loc = 'ARCTIC' ORDER BY Forest.Fo_name, Species.Sp_name;</code>
Pecahan Pertanyaan
Pertanyaan ini dengan cekap menyertai jadual:
Forest
dan Tree
menggunakan Tree.Tr_forest
(nama hutan dalam jadual Tree
) dan Forest.Fo_name
(nama hutan dalam jadual Forest
).Tree
dan Species
menggunakan Tree.Tr_species
(nama spesies dalam jadual Tree
) dan Species.Sp_name
(nama spesies dalam jadual Species
).WHERE
menapis hasil untuk menunjukkan hanya hutan yang terletak di 'ARCTIC'.ORDER BY
mengisih hasil mengikut nama hutan dan kemudian nama spesies.Kaedah ini berkesan menggunakan jadual Tree
sebagai jambatan untuk menyambung Species
dan Forest
, membolehkan mendapatkan semula maklumat yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Menyertai Jadual yang Tiada Hubungan Utama Asing Langsung Menggunakan Jadual Perantaraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!