在 MSSQL 中加入两个表,并且只有 return 行在字段中具有特定值

Join two tables in MSSQL and only return rows with a certain value in a field

我有两个 table 试图加入一个名为 "job_id" 的列。第一个 table、"Commitments" 包含有关项目详细信息的信息,第二个 table,称为 "Jobs",包含有关分配给某项工作的项目经理的详细信息。

我想将两者连接在一起,return "Commitments" 中与他们的项目经理 (Commitments.Project_Manager) 相对应的所有行。

所以,一个项目经理被分配了多个项目(包含在工作中),每个项目都有多个关于它的详细信息(在承诺中),所以沿着链向上,我的查询应该 return 所有行在与工作中的项目经理相关联的承诺中上升链。

这是我当前的查询,但它只是 return 承诺的所有结果:

$sql = "SELECT * FROM Commitments 
LEFT JOIN Jobs 
ON Commitments.job_id=Jobs.job_id 
AND Jobs.Project_Manager LIKE :projectmanager"

这是在 PHP/MSSQL 中完成的,两者之间有一个 ODBC 连接。

抱歉,如果这真的很简单,我对 SQL 查询感到很糟糕。谢谢!

如果您想要 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

尝试以下操作:

SELECT * FROM
Jobs j INNER JOIN Commitments c on j.job_id = c.job_id
WHERE j.project_manager LIKE :projectmanager