Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL Select Left从同一个表中联接多个列_Mysql_Sql - Fatal编程技术网

MySQL Select Left从同一个表中联接多个列

MySQL Select Left从同一个表中联接多个列,mysql,sql,Mysql,Sql,我在主项目工作流表中有需要与用户表中的一个对象关联的对象。我面临的问题是,当我进行左连接时,一次只能关联一个对象。 我需要做的关系是: workflowUID = user_id assignedTo = user_id 我相信这个问题是由我的左JOIN引起的,但是,我不知道我需要使用哪个JOIN语句来处理这个关系 用户表 user_id | user_firstName | user_lastName 1 | Joe | Smith 2 |

我在主项目工作流表中有需要与用户表中的一个对象关联的对象。我面临的问题是,当我进行左连接时,一次只能关联一个对象。

我需要做的关系是:

workflowUID = user_id
assignedTo   = user_id
我相信这个问题是由我的
左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 第二次尝试在mainprojectworkflow.workflowUID=user.user\u id上设置第二个左联接用户,但改为将其作为mainprojectworkflow.Assigned以获取非唯一的表/别名用户。我相信这是因为我已经将用户表设置为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
    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;

尝试此类型的查询:

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;

您是否考虑修改表模式?因为它是为
主项目工作流
表设计的池。你能解释一下什么是
projectID
cid
,或者在架构中包含这些列吗?没有projectID列我更新了问题,以包含projectID和cid的信息。对不起,我应该已经包括了。你考虑修改你的表模式吗?因为它是为
主项目工作流
表设计的池。你能解释一下什么是
projectID
cid
,或者在架构中包含这些列吗?没有projectID列我更新了问题,以包含projectID和cid的信息。对不起,我应该包括在内的。谢谢!我做了一个小改动,从内部连接到左连接,然后添加了一些其他连接。我没有意识到我的错误是由别名引起的。运行您的SQL代码后,我能够快速地将其组合起来。:)非常感谢。我做了一个小改动,从内部连接到左连接,然后添加了一些其他连接。我没有意识到我的错误是由别名引起的。运行您的SQL代码后,我能够快速地将其组合起来。:)
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;