【发布时间】:2018-11-06 15:27:52
【问题描述】:
我在主项目工作流表中有对象,我需要与用户表中的一个对象相关联。我面临的问题是当我执行 LEFT JOIN 时,我一次只能关联一个对象。
我需要做的关系是:
workflowUID = user_id
assignedTo = user_id
我认为问题是由我的LEFT JOIN 引起的,但是,我不知道我需要使用哪个 join 语句来建立这种关系。
用户表
用户 ID |用户名 |用户姓氏 1 |乔 |史密斯 2 |约翰 |美国能源部主项目表
项目ID |项目名称 |项目描述 |项目截止日期 |项目分配给 1 |测试标题 |项目描述 | 11-06-2018 | 2主项目工作流表已编辑
项目ID |客户识别码 |工作流UID |分配给 1 | 1 | 1 | 2projectID 与另一个名为 mainProjects 的表相关,该表列出了有关项目的更多信息,例如项目标题、创建/到期日期、创建者、工作时间、项目描述。
CID 存储在主项目工作流表中。它是提交 ID。稍后将用于编辑/删除 cmets 等内容。
输出
工作流程创建者 |分配给的工作流 乔·史密斯 |约翰·多伊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 中提取变量,以便我可以使用它们,但我觉得合适。
【问题讨论】:
-
您是否考虑过修改您的表架构?因为我认为这是
Main Project Workflow表的池设计。 -
您能解释一下
projectID和cid是什么,或者在架构中包含这些列吗? -
没有projectid列
-
我更新了问题以包含 projectID 和 CID 的信息。对不起,我应该把它包括在内。