我正在尝试使用名为“job_id”的列加入两个表。第一个表“承诺”包含有关项目详细信息的信息,第二个表称为“作业”,其中包含有关分配给作业的项目经理的详细信息。
我想将两者连接在一起并返回与其项目管理器(Commitments.Project_Manager)对应的“Commitments”中的所有行。
因此,项目经理被分配了多个项目(包含在作业中),每个项目都有多个关于它的详细信息(在承诺中),所以在链上,我的查询应该返回承诺链中的所有行与Jobs中的项目经理相关联。
这是我当前的查询,但它只是返回承诺中的所有结果:
$sql = "SELECT * FROM Commitments
LEFT JOIN Jobs
ON Commitments.job_id=Jobs.job_id
AND Jobs.Project_Manager LIKE :projectmanager"
这是在PHP / MSSQL中完成的,两者之间有ODBC连接。
很抱歉,如果这很简单,我对SQL查询很糟糕。谢谢!
答案 0 :(得分:1)
如果你想让Project_Manager没有承诺:
SELECT *
FROM Jobs LEFT JOIN Commitments
ON Commitments.job_id=Jobs.job_id
WHERE Jobs.Project_Manager LIKE :projectmanager
或者您只希望Project_Manager有承诺:
SELECT *
FROM Jobs inner JOIN Commitments
ON Commitments.job_id=Jobs.job_id
WHERE Jobs.Project_Manager LIKE :projectmanager
答案 1 :(得分:0)
尝试以下方法:
SELECT * FROM
Jobs j INNER JOIN Commitments c on j.job_id = c.job_id
WHERE j.project_manager LIKE :projectmanager