在不同列上兩次加入同一個表以進行多功能用戶資訊檢索
此查詢旨在檢索open_by 和returned_by 列的使用者名稱在投訴表中,其中使用者儲存在使用者表中。挑戰在於使用不同的欄位多次連接使用者表。
為了完成此任務,我們對用戶表的每個實例採用 LEFT JOIN 操作,為了清楚起見,將連接的表別名為 A 和 B。查詢如下進行:
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
在此查詢中,我們首先從投訴表中選擇complaint_text 列,並從用戶表中選擇opened_by 和close_by 列的使用者名稱。
然後,我們使用 LEFT JOIN 根據opened_by 欄位將投訴表與使用者表連接。這允許我們將complaint.opened_by中的user_id與用戶表中的user_id進行匹配並檢索相應的用戶名。我們將連接表別名為 A。
接下來,我們基於 Closed_by 欄位在投訴表和使用者表之間執行另一個 LEFT JOIN 操作。我們將此連接表別名為 B。
此查詢的結果提供了投訴詳細資訊的清晰視圖,以及投訴人和已解決者列的使用者名稱。
以上是如何有效率地多次Join同一張表的不同欄位來檢索使用者資訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!