我正在处理一个查询,我想从多个表中返回行,这些行必须是不同的。虽然我只想要返回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'
这个计算回复中有多少行并且只返回一行。但它必须是具有克劳斯: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'
有一个答案,但它并没有完全返回我需要的东西,我需要从用户评论过的警报中计算所有答复,而不仅仅是计算用户评论该警报的次数。
有人能指出我正确的方向吗?或者提供答案? THX。
答案 0 :(得分:2)
这是你想要的吗?
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
条款中加入什么。