Postgresql
多個 JOIN 僅返回最後一個引用的表
我在一個表中引用了不同表中的列,我正在執行查詢以獲取與它們各自表中的這些列相關的欄位,但查詢僅返回最後一個連接(certstype.name from Certifications.certid = certstype.id 在這種情況下)如何修改查詢以從我引用的所有表中返回名稱。為了讓問題更清楚,我還附上了關係圖。
環境:PostGRESQL 和 PHP。
$query = "SELECT certifications.*, users.name, company.name, certstype.name FROM certifications INNER JOIN users ON certifications.candidate=users.id JOIN company ON certifications.company=company.id JOIN certstype ON certifications.certid=certstype.id WHERE certifications.candidate = 2 ORDER BY 5 ASC";
您可能正在使用一種方法來返回需要唯一列名的數據,例如因為它使用列名作為雜湊中的鍵。您可以添加別名以使列名唯一。
這是帶有別名的查詢的第一行:
SELECT certifications.*, users.name as user_name, company.name as company_name, certstype.name as cert_type_name FROM ...
“AS”關鍵字在名稱和別名之間是可選的,但我認為它使事情更清楚。
如果這不能為您解決問題,您應該向我們展示執行查詢和獲取數據的 php 程式碼。