我的问题是关于左连接我试图计算有多少人跟踪某个项目。
(可以有零粉丝)
现在我能让它发挥作用的唯一方法就是添加
group by idproject
我的问题是,如果这是一种避免使用它的方法,只是选择并隐含地 设置该组选项。
SQL:
select `project_view`.`idproject` AS `idproject`,
count(`track`.`iduser`) AS `c`,`name`
from `project_view` left join `track` using(idproject)
我expected it count null为零,但根本没有出现,如果我忽略了计数,那么在没有粉丝的情况下它会显示为空。
答案 0 :(得分:3)
如果你有一个WHERE子句来指定某个项目,那么不需要GROUP BY。
SELECT project_view.idproject, COUNT(track.iduser) AS c, name
FROM project_view
LEFT JOIN track USING (idproject)
WHERE idproject = 4
如果您想要计算每个项目,那么执行需要GROUP BY。
SELECT project_view.idproject, COUNT(track.iduser) AS c, name
FROM project_view
LEFT JOIN track USING (idproject)
GROUP BY idproject
答案 1 :(得分:1)
是选择事项的顺序。出于性能原因,您(通常)希望您的最大限制选择首先缩小数据集。这使得每个后续查询都在较小的数据集上运行。