Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyertai Jadual Tanpa Kunci Asing Menggunakan Jadual Perantara?

Bagaimanakah Saya Boleh Menyertai Jadual Tanpa Kunci Asing Menggunakan Jadual Perantara?

Susan Sarandon
Susan Sarandonasal
2025-01-15 18:10:43859semak imbas

How Can I Join Tables Without Foreign Keys Using an Intermediary Table?

Menyertai Jadual Tanpa Hubungan Utama Asing Langsung: Panduan Praktikal

Pangkalan data perhubungan selalunya memerlukan penyatuan jadual untuk menggabungkan data daripada pelbagai sumber. Walaupun kunci asing biasanya mentakrifkan perhubungan ini, ini tidak selalu berlaku. Panduan ini menerangkan cara untuk menyertai jadual secara tidak langsung menggunakan jadual perantara ketiga.

Cabarannya

Bayangkan tiga jadual: Forests, Species dan Trees. Forests menyimpan nama dan lokasi hutan; Species menyenaraikan spesies pokok dan jenis kayu; dan Trees memperincikan pokok individu, termasuk spesiesnya dan hutan yang mereka diami.

Objektifnya adalah untuk menyertai Forests dan Species berdasarkan pokok yang mereka kongsi. Walau bagaimanapun, tiada pautan kunci asing langsung antara Forests dan Species. Sebaliknya, Trees bertindak sebagai jambatan, mengandungi kunci asing yang merujuk kedua-dua Forests dan Species.

Penyelesaian: Menyertai Tidak Langsung melalui Perantara

Penyelesaian terletak pada penggunaan jadual Trees sebagai pautan perantara. Dengan menyertai Forests dan Species melalui Trees, kami secara tidak langsung mewujudkan hubungan yang diingini.

Contoh Pertanyaan SQL

Pertanyaan SQL ini menunjukkan gabungan tidak langsung:

<code class="language-sql">SELECT Forests.Fo_name, Species.Sp_name, Species.Sp_woodtype
FROM Forests
INNER JOIN Trees ON Forests.Fo_name = Trees.Tr_forest
INNER JOIN Species ON Trees.Tr_species = Species.Sp_name
WHERE Forests.Fo_loc = 'ARTIC'
ORDER BY Forests.Fo_name, Species.Sp_name;</code>

Langkah pertanyaan ini:

  • INNER JOIN menghubungkan Forests dan Trees menggunakan nama hutan yang sepadan.
  • Satu lagi INNER JOIN pautan Trees dan Species melalui nama spesies yang sepadan.
  • WHERE menapis hasil ke hutan di rantau 'ARTIC'.
  • ORDER BY mengisih output untuk kebolehbacaan.

Ringkasan

Kaedah ini menggabungkan jadual dengan berkesan tanpa sambungan kunci asing langsung dengan menggunakan jadual kongsi sebagai jambatan. Mengenal pasti lajur biasa yang memautkan jadual adalah penting untuk mewujudkan hubungan tidak langsung ini, membolehkan operasi gabungan yang kompleks walaupun tanpa kekangan kunci asing tradisional.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyertai Jadual Tanpa Kunci Asing Menggunakan Jadual Perantara?. 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