在MySQL中我编写了以下查询.使用它再次重新选择所有数据JOIN
对我来说似乎不是最有效的方法.你会如何重写它以提高效率?
SELECT * FROM (
SELECT COUNT(*) AS 'total' FROM `the_table`
WHERE `subject_id`=7 ) a
JOIN (
SELECT COUNT(*) AS 'unread' FROM `the_table`
WHERE `subject_id`=7 AND `read`=0 ) b
Run Code Online (Sandbox Code Playgroud)
编辑:
我正在尝试获得一个包含2列的表:'total'和'unread',其中一行具有INT值,例如
总数:200未读:20
由于除了读取条件之外,where子句是相同的,因此可以使用SUM/CASE
SELECT COUNT(*) AS 'total' ,
SUM(CASE WHEN `read`=0 THEN 1 ELSE 0 END) as `unread`
FROM `the_table`
WHERE `subject_id`=7
Run Code Online (Sandbox Code Playgroud)