mysql - SQL 显示 count() 中的值

标签 mysql sql

所以我有两个表:

  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 

DEMO HERE

关于mysql - SQL 显示 count() 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22250681/

相关文章:

mysql - 如何使用命令提示符创建mysql数据库?我收到错误 ERROR 1044 (42000) : Access denied for user '' @'localhost' to database 'ivs'

Mysql根据EXISTS从一张表中插入列和数据

ios - Sqlite3 自动完成查询?

sql - 根据 Postgres 中的另一列设置列的值?

SQL Select COUNT(Value=Value) 可能吗?

java - 如何使用 while 循环使用从结果集中获取的值来更新另一个操作?

PHP PDO插入问题

php - 无法使用 AJAX 从 PHP 生成的 Bootstrap 选项卡中检索数据

mysql - 每个派生表必须有自己的别名 mysql 数据库

sql - 将 getdate() 转换为 yyyymmdd 并获取两年前的日期