所以我有两个表:
People Jobs
id | name id | personId | Status | place
-------------- ---------------------------------
1 | John 1 | 1 | Active | Home
2 | Melinda 2 | 1 | Active | Office
3 | Samuel 3 | 2 | Active | Home
4 | 3 | Active | Office
5 | 1 | Active | Garden
问题:
我想显示在家庭或办公室拥有不止一项事件工作的人员的姓名。我可以计数并显示数字,但无法显示名称。
这是我的代码(不起作用):
SELECT t.name
FROM people p JOIN jobs j ON j.personId = p.id
WHERE j.status = 'Active' AND j.place='Home' OR j.place='Office'
HAVING count(j.personId) > 1
最佳答案
AND 和 OR 在 WHERE 条件下混合:
改变这个
WHERE j.status = 'Active' AND j.place='Home' OR j.place='Office'
至
WHERE j.status = 'Active' AND (j.place='Home' OR j.place='Office')
试试这个
SELECT p.name
FROM People p JOIN jobs t ON t.personId = p.id
WHERE t.status = 'Active' AND (t.place='Home' OR t.place='Office')
GROUP BY p.name
HAVING count(t.personId) > 1
关于mysql - SQL 显示 count() 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22250681/