Bagaimana untuk Menyertai Jadual Dua Kali pada Lajur Berbeza untuk Mendapatkan Data Berkaitan?

DDD
Lepaskan: 2024-10-24 14:16:02
asal
378 orang telah melayarinya

How to Join a Table Twice on Different Columns to Retrieve Related Data?

Menyertai Jadual Yang Sama Dua Kali pada Lajur Berbeza

Pertimbangkan senario di mana anda mempunyai jadual pengguna dan jadual aduan. Jadual aduan mengandungi ID pengguna kedua-dua orang yang membuka aduan dan orang yang menutupnya. Matlamatnya adalah untuk menulis pertanyaan yang memaparkan nama pengguna untuk kedua-dua individu ini.

Pada mulanya, pertanyaan boleh mendapatkan semula nama pengguna untuk orang yang membuka aduan:

SELECT user.username, complaint.complaint_text
FROM complaint
LEFT JOIN user ON user.user_id=complaint.opened_by
Salin selepas log masuk

Walau bagaimanapun, untuk mendapatkan semula nama pengguna untuk orang yang menutup aduan, anda perlu menyertai jadual pengguna sekali lagi menggunakan lajur yang berbeza. Ini dicapai menggunakan pertanyaan 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
Salin selepas log masuk

Dalam pertanyaan ini:

  • Jadual A digunakan untuk bergabung pada lajur yang dibuka.
  • Jadual B ialah digunakan untuk menyertai pada lajur tertutup.

Dengan menyertai jadual pengguna dua kali, anda boleh mendapatkan semula nama pengguna untuk kedua-dua orang yang membuka dan menutup aduan, membolehkan anda memaparkan maklumat menyeluruh tentang setiap aduan.

Atas ialah kandungan terperinci Bagaimana untuk Menyertai Jadual Dua Kali pada Lajur Berbeza untuk Mendapatkan Data Berkaitan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!