mysql - 具有内部连接和不同值的 SQL 计数

标签 mysql sql

我目前正在处理一个查询,我想从多个表中返回行,这些行需要不同。但是,虽然我只想返回 1 个不同的行,但我还想知道有多少行而不必执行另一个查询,这就是我到目前为止得到的结果:

SELECT DISTINCT a.title,
                a.lat,
                a.lon,
                a.alert_content_id,
                a.date_added,
                count(*) 
FROM `reply` r 
INNER JOIN `alerts` a ON r.alert_id=a.alerts 
WHERE `user` = '1'

这个计算回复中有多少行并且只返回一行。但它必须是具有此 where 子句的行:r.alert_id=a.alerts

这会返回所有行,但会漏掉每一行的计数

SELECT DISTINCT a.title,
                a.lat,
                a.lon,
                a.alert_content_id,
                a.date_added 
FROM `reply` r 
INNER JOIN `alerts` a ON r.alert_id=a.alerts 
WHERE `user` = '1'

有一个答案,但它没有完全返回我需要的东西,我需要计算用户评论的警报中的所有回复,而不仅仅是计算用户对该警报评论的次数。

有人能指出我正确的方向吗?或者给出答案?谢谢。

最佳答案

这是你想要的吗?

SELECT a.title,
       a.lat,
       a.lon, 
       a.alert_content_id, 
       a.date_added, 
       count(*)
FROM `reply` r INNER JOIN
     `alerts` a
      ON r.alert_id = a.alerts
WHERE `user` = '1'
GROUP BY a.title, a.lat, a.lon, a.alert_content_id, a.date_added;

您的问题的答案是您不想使用select distinct。您想要使用 group by 进行聚合查询。只是不清楚您想将什么放入 group by 子句。

关于mysql - 具有内部连接和不同值的 SQL 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25306890/

相关文章:

mysql BETWEEN 2次

sql - CTE 表达式中的 TSQL-ORDER BY 子句?

MySQL区分大小写的更新语句

php - 任何人都可以告诉这个查询有什么问题吗?

php - mySQL php 查询 - 新闻/ friend 提要

php - 在循环数据中选择选项时显示 div

sql - 使用找不到的编译错误创建的触发器?

MySQL 在单个资源 ID 上连接 3 个表

sql - 如何在postgres jsonb查询中检查键的值是否为真

SQL 查询帮助 (Postgresql)