mysql - 如何根据条件选择行(另一个表中的多条记录)

标签 mysql

我有两张 table 。第一个表是一个包含 id 和描述该 id 的属性的表,另一个表用于显示用户的事件。因此每个用户可能有一个或多个事件。

用户

user_id  server_id  user_name  user_email
00001    10         Tom        tom@email.com
00002    20         Bob        bob@email.com
00003    10         Sid        sid@email.com

用户事件

user_id  activity_id  activity_date
00001    1            2015-03-15
00002    4            2014-07-27
00001    3            2014-02-09
00003    5            2014-11-22
00003    4            2015-08-18

我想选择 1000 个用户,条件是 user_activity 表中必须有多行。

SELECT a.user_id, a.user_email FROM user a
INNER JOIN user_activity b ON a.user_id = b.user_id
WHERE a.server_id = 10
AND (user_id BETWEEN 1 AND 10000)
GROUP BY a.user_id 
HAVING COUNT(a.user_id > 1)
LIMIT 1000   

上面的查询为我提供了具有单行和多行的用户组合。我在这里做错了什么?

最佳答案

改变

HAVING COUNT(a.user_id > 1)

HAVING COUNT(a.user_id)>1

我认为它会给出所需的输出

关于mysql - 如何根据条件选择行(另一个表中的多条记录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33208025/

相关文章:

c++ - MySQL 和可变参数

php - 在现有(旧版)应用程序中使用 PHP PDO。多个 SQL 连接?

MySql 索引在范围扫描中的工作方式不同

php - MySql 在 XAMPP v3.2.1 中不启动

mysql select查询多个表名字符串

mysql - 如何用mysqldump写存储过程来分隔文件?

php - 如何在mysql中管理并发?

mysql - IFNULL 和 IF 之间的区别

MYSQL DateTime '0000-00-00 00:00:00' + 间隔 1 个月不小于 NOW()

mysql - 按分数对 mysql 中的用户进行排名