簡體   English   中英

MySQL選擇左連接從同一表中的多個列

[英]MySQL Select Left Join multiple columns from the same table

我在Main Project Workflow表中有一些對象需要與User表中的一個對象相關聯。 我面臨的問題是當我進行左聯接時,一次只能關聯一個對象。

我需要做的關系是:

workflowUID = user_id
assignedTo   = user_id

我認為問題是由我的LEFT JOIN引起的,但是,我不知道我需要使用哪個join語句來建立這種關系。

用戶表

user_id | user_firstName | user_lastName
1       | Joe            | Smith
2       | John           | Doe

主項目表

projectID | projectTitle | projectDesc   | projectDueDate | projectAssignedTo
1         | Test Title   | Desc for Proj | 11-06-2018     | 2

主項目工作流程表已編輯

projectID | CID | workflowUID | assignedTo
1         | 1   | 1           | 2

projectID關聯到另一個表mainProjects,該表列出了有關項目的更多信息,例如項目標題,創建/到期日期,創建時間,工作時間,項目描述。

CID存儲在主項目工作流表中。 它是提交ID。 稍后將用於編輯/刪除評論之類的內容。

產量

Workflow Created By | Workflow Assigned To
Joe Smith           | John Doe

SQL:

SELECT *
FROM mainprojectworkflow 
LEFT JOIN user ON mainprojectworkflow.workflowUID = user.user_id
WHERE projectID = $projectID
ORDER BY cid DESC

第二個我嘗試在mainprojectworkflow.workflowUID = user.user_id上設置第二個LEFT JOIN用戶,但是作為mainprojectworkflow.assignedTo我得到了一個不唯一的表/別名用戶。 我相信這是因為我已經將用戶表設置為mainprojectworkflow。

編輯對不起,我應該對所發生的事情更加清楚。

最終結果:我的計划是使用SQL選擇數據並將其顯示在網站上的PHP中。 這是一個項目管理網站。 我希望能夠使PHP從SQL中提取變量,以便我可以使用它們,但我覺得合適。

您將需要兩次加入表用戶,如下所示:

SELECT
    mpw.workflowUID,
    CONCAT(cu.user_firstName, " ", cu.user_lastName) AS "Workflow Created By",
    mpw.assginedTo,
    CONCAT(au.user_firstName, " ", au.user_lastName) AS "Workflow Assigned To"
FROM
    mainprojectworkflow AS mpw
INNER JOIN
    user AS cu ON cu.user_id = mpw.workflowUID
INNER JOIN
    user AS au ON au.user_id = mpw.assignedTo
WHERE
    projectID = $projectID
ORDER BY
    cid DESC

試試這種類型的查詢:

SELECT 
CONCAT_WS(' ', uc.user_firstName, uc.user_lastName) AS Workflow_Created_By, 
CONCAT_WS(' ', ua.user_firstName, ua.user_lastName) AS Workflow_Assigned_To 
FROM mainprojectworkflow 
LEFT JOIN User uc ON mainprojectworkflow.workflowUID = uc.user_id 
LEFT JOIN User ua ON mainprojectworkflow.assignedTo = ua.user_id;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM