Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyertai Jadual yang Tiada Hubungan Utama Asing Langsung Menggunakan Jadual Perantaraan?

Bagaimana untuk Menyertai Jadual yang Tiada Hubungan Utama Asing Langsung Menggunakan Jadual Perantaraan?

Barbara Streisand
Barbara Streisandasal
2025-01-15 18:27:16684semak imbas

How to Join Tables Lacking Direct Foreign Key Relationships Using an Intermediate Table?

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:

  1. Ia mula-mula bergabung dengan Forest dan Tree menggunakan Tree.Tr_forest (nama hutan dalam jadual Tree) dan Forest.Fo_name (nama hutan dalam jadual Forest).
  2. Kemudian, ia bergabung dengan Tree dan Species menggunakan Tree.Tr_species (nama spesies dalam jadual Tree) dan Species.Sp_name (nama spesies dalam jadual Species).
  3. Klausa WHERE menapis hasil untuk menunjukkan hanya hutan yang terletak di 'ARCTIC'.
  4. Akhir sekali, 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!

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