Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menyertai Jadual Yang Sama Dua kali dalam Pertanyaan MySQL?

Bagaimanakah Saya Boleh Menyertai Jadual Yang Sama Dua kali dalam Pertanyaan MySQL?

DDD
Lepaskan: 2024-12-18 09:50:12
asal
742 orang telah melayarinya

How Can I Join the Same Table Twice in a MySQL Query?

Menyertai pada Jadual Yang Sama Dua Kali dalam MySQL

Operasi gabungan MySQL membolehkan anda menggabungkan baris daripada berbilang jadual berdasarkan kekunci biasa. Dalam senario tertentu, mungkin perlu untuk menyertai jadual dengan dirinya sendiri, dua kali. Teknik ini biasanya digunakan untuk memaparkan berbilang lajur daripada jadual yang sama dalam hasil pertanyaan.

Kes Penggunaan

Pertimbangkan pangkalan data dengan dua jadual: domain dan ulasan. Jadual domain mengandungi ID domain (dom_id) dan nama domain (dom_url). Jadual ulasan mengandungi ID domain untuk domain "daripada" dan "kepada" yang terlibat dalam semakan (rev_dom_from, rev_dom_to).

Untuk memaparkan kedua-dua nama domain bagi setiap semakan, adalah perlu untuk menyertai jadual domain dua kali .

Struktur Pertanyaan

Untuk mencapai ini, gunakan LEFT JOIN untuk setiap penyertaan yang diingini. Dalam contoh ini, alias jadual domain sebagai toD dan fromD untuk kejelasan.

SELECT toD.dom_url AS ToURL,
       fromD.dom_url AS FromUrl,
       rvw.*
FROM reviews AS rvw
LEFT JOIN domain AS toD
    ON toD.dom_id = rvw.rev_dom_for
LEFT JOIN domain AS fromD
    ON fromD.dom_id = rvw.rev_dom_from;
Salin selepas log masuk

Penjelasan

  • Pemilihan Jadual: Pertanyaan bermula dengan memilih baris daripada jadual ulasan, menyalinkannya sebagai "rvw."
  • KIRI Pertama JOIN: LEFT JOIN pertama menyambungkan jadual domain (disebut sebagai toD) ke jadual ulasan berdasarkan ID domain "To" (toD.dom_id = rvw.rev_dom_for).
  • Kedua LEFT JOIN: LEFT JOIN kedua membawa masuk jadual domain untuk kali kedua (disebut sebagai fromD) dan menyambungkannya ke jadual ulasan berdasarkan ID domain "Daripada" (fromD.dom_id = rvw.rev_dom_from).
  • PILIH Klausa: Klausa SELECT menentukan bahawa pertanyaan harus mengembalikan medan dom_url daripada alias toD sebagai ToURL dan medan dom_url daripada alias fromD sebagai FromUrl. Ia juga termasuk semua lajur (rvw.*) daripada jadual ulasan dalam hasil carian.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyertai Jadual Yang Sama Dua kali dalam Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan