Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menyertai Jadual Dua Kali pada Lajur Berbeza untuk Memaparkan Nama Pengguna Daripada ID Pengguna?

Bagaimana untuk Menyertai Jadual Dua Kali pada Lajur Berbeza untuk Memaparkan Nama Pengguna Daripada ID Pengguna?

Linda Hamilton
Linda Hamiltonasal
2024-10-24 18:21:02462semak imbas

How to Join a Table Twice on Different Columns to Display Usernames Instead of User IDs?

Menyertai Jadual Yang Sama Dua Kali pada Lajur Berbeza

Soalan:

Seorang pengguna dan aduan jadual diwujudkan, di mana pengguna boleh mengemukakan dan menyelesaikan aduan. Jadual aduan termasuk user_id kedua-dua pengadu dan penyelesai. Matlamatnya adalah untuk menulis pertanyaan yang memaparkan nama pengguna kedua-dua pihak dan bukannya user_id mereka.

Jawapan:

Untuk menyertai jadual pengguna dua kali pada lajur berbeza dan dapatkan semula nama pengguna, pertanyaan berikut boleh digunakan:

SELECT 
     complaint.complaint_text, 
     A.username AS OpenedBy, 
     B.username AS ClosedBy
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:

  • Klausa LEFT JOIN digunakan untuk menyertai jadual aduan dengan jadual pengguna dua kali.
  • Alias ​​A digunakan untuk penyertaan pertama, merujuk nama pengguna pengadu.
  • Alias ​​B digunakan untuk penyertaan kedua, merujuk nama pengguna penyelesai aduan.
  • Jadual pengguna digabungkan dengan jadual aduan berdasarkan lajur yang dibuka oleh dan ditutup oleh, mendapatkan semula nama pengguna yang berkaitan.

Atas ialah kandungan terperinci Bagaimana untuk Menyertai Jadual Dua Kali pada Lajur Berbeza untuk Memaparkan Nama Pengguna Daripada ID 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