MySQL查询优化(加入类似的查询结果)

inh*_*han 0 mysql sql join

在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

Con*_*rix 6

由于除了读取条件之外,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)