Postgresql

多個 JOIN 僅返回最後一個引用的表

  • July 27, 2021

我在一個表中引用了不同表中的列,我正在執行查詢以獲取與它們各自表中的這些列相關的欄位,但查詢僅返回最後一個連接(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 程式碼。

引用自:https://dba.stackexchange.com/questions/296258