SQL select中的列顺序是否重要?

时间:2010-12-18 23:56:28

标签: sql mysql group-by aggregate

我的问题是关于左连接我试图计算有多少人跟踪某个项目。 (可以有零粉丝)

现在我能让它发挥作用的唯一方法就是添加

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为零,但根本没有出现,如果我忽略了计数,那么在没有粉丝的情况下它会显示为空。

2 个答案:

答案 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)

是选择事项的顺序。出于性能原因,您(通常)希望您的最大限制选择首先缩小数据集。这使得每个后续查询都在较小的数据集上运行。