为糟糕的问题标题道歉。
我有两个表,jobs 和 Persons-Jobs。
工作表
1 Painting
2 Plumbing
3 Executive
4 CraneOperator
人员-工作表
JohnSmit Painting
JohnSmit CraneOperator
TomJones Executive
BradPit Plumbing
问题
我想运行一个返回两列的查询。第一列必须显示作业表中的所有记录。第二栏必须显示做这项工作的人的名字。我想要一个只返回一个用户结果的 where 子句,在这个例子中是 JohnSmit。例如查询应该输出:
Painting JohnSmit
Plumbing *NULL*
Executive *NULL*
CraneOperator JohnSmit
我已经尝试过外部连接,但是当 Persons-Jobs 表中有多个人时它会失败。
select j.job,p.person
from jobs j
LEFT OUTER JOIN `Persons-Jobs` p on j.job = p.job
where p.person='JohnSmit'
or p.person is NULL
如有任何帮助,我们将不胜感激。
感谢和问候, 涂抹
最佳答案
可以在join子句中对person进行限制。这样,其他人将在加入之前被过滤掉。
select j.job,p.person
from jobs j
LEFT
JOIN `Persons-Jobs` p
on j.job = p.job
and p.person='JohnSmit'
关于MySQL 查询 - 连接表以显示一个表中的所有值,并且仅显示另一列中的匹配结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11105557/