Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menyertai Jadual Yang Sama Berbilang Kali pada Lajur Berbeza dengan Cekap untuk Mendapatkan Maklumat Pengguna?

Bagaimana untuk Menyertai Jadual Yang Sama Berbilang Kali pada Lajur Berbeza dengan Cekap untuk Mendapatkan Maklumat Pengguna?

Linda Hamilton
Linda Hamiltonasal
2024-10-24 10:36:30326semak imbas

How to Efficiently Join the Same Table Multiple Times on Different Columns for User Information Retrieval?

Menyertai Jadual Yang Sama Dua Kali pada Lajur Berbeza untuk Mendapatkan Maklumat Pengguna Serbaguna

Pertanyaan ini bertujuan untuk mendapatkan nama pengguna untuk kedua-dua lajur open_by dan closed_by dalam jadual aduan, di mana pengguna disimpan dalam jadual pengguna. Cabarannya terletak pada menyertai jadual pengguna berbilang kali menggunakan lajur yang berbeza.

Untuk menyelesaikan tugasan ini, kami menggunakan operasi LEFT JOIN untuk setiap contoh jadual pengguna, menyalakan jadual bercantum sebagai A dan B untuk kejelasan. Pertanyaan diteruskan seperti berikut:

SELECT 
     complaint.complaint_text, 
     A.username, 
     B.username
FROM 
     complaint 
     LEFT JOIN user A ON A.user_id=complaint.opened_by 
     LEFT JOIN user B ON B.user_id=complaint.closed_by

Dalam pertanyaan ini, kami mulakan dengan memilih lajur complaint_text daripada jadual aduan dan nama pengguna daripada jadual pengguna untuk kedua-dua lajur open_by dan closed_by.

Kami kemudian menyertai jadual aduan dengan jadual pengguna berdasarkan lajur dibuka_oleh menggunakan LEFT JOIN. Ini membolehkan kami memadankan user_id daripada complaint.opened_by kepada user_id dalam jadual pengguna dan mendapatkan semula nama pengguna yang sepadan. Kami alias jadual yang dicantumkan sebagai A.

Seterusnya, kami melakukan satu lagi operasi LEFT JOIN antara jadual aduan dan jadual pengguna berdasarkan lajur closed_by. Kami menyamakan jadual yang digabungkan ini sebagai B.

Hasil pertanyaan ini memberikan pandangan yang jelas tentang butiran aduan, bersama-sama dengan nama pengguna kedua-dua pengadu dan lajur Oleh yang diselesaikan.

Atas ialah kandungan terperinci Bagaimana untuk Menyertai Jadual Yang Sama Berbilang Kali pada Lajur Berbeza dengan Cekap untuk Mendapatkan Maklumat Pengguna?. 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