Mysql 选择行数而不是其中的内容

Mysql 选择行数而不是其中的内容,mysql,select,Mysql,Select,有一次,我使用此查询选择项目数,以便创建页面列表: SELECT COUNT(id) FROM lists WHERE online = 1 但现在变得困难了,因为有更多的条件。现在我需要知道在线列表的数量,这些列表有字幕,其中有列表项 我尝试了以下操作,但它给出了多行而不是一个数字: SELECT COUNT(lists.id) FROM lists INNER JOIN subtitles ON subtitles.list_id = lists.id INNER JOIN listite

有一次,我使用此查询选择项目数,以便创建页面列表:

SELECT COUNT(id) FROM lists WHERE online = 1
但现在变得困难了,因为有更多的条件。现在我需要知道在线列表的数量,这些列表有字幕,其中有列表项

我尝试了以下操作,但它给出了多行而不是一个数字:

SELECT COUNT(lists.id)
FROM lists
INNER JOIN subtitles ON subtitles.list_id = lists.id
INNER JOIN listitems ON listitems.subtitle_id = subtitles.id
WHERE lists.online = 1
GROUP BY lists.id
当然,我知道用PHP计算列表的数量是可能的,但是只用MySQL选择列表的数量要快得多


那么,有没有办法在不获取行的实际内容的情况下选择行数?

这可能就是您想要实现的目标:

SELECT COUNT(DISTINCT(lists.id))
FROM lists
INNER JOIN subtitles ON subtitles.list_id = lists.id
INNER JOIN listitems ON listitems.subtitle_id = subtitles.id
WHERE lists.online = 1

不必对列表进行分组,只需计算联接中的distinct。如果你想得到的只是数量,那就更容易了。

谢谢,就这样:。我尝试了
DISTINCT COUNT(lists.id)
,但我不知道可以在
COUNT()中使用它