选择`name`,COUNT(*)AS`count` 从`t1`,`t2` t2`.id` = t1.id 由`t2`.`id`分组
我想从t1中获取名称,并在t2中获得与ID在t1上相同的行数。
到目前为止,我已经掌握了上述内容,但是如果t2中没有匹配的行,它将不会返回任何数据。count如果没有行,则我希望将其设置为0(或NULL),并且名称仍然返回。
count
编辑: 我希望能够按count降序排序。(或nameASC)可行吗?
name
这应该为您工作:
SELECT `t1`.`id` , COUNT(`t2`.`id`) AS `count` FROM `t1` LEFT JOIN `t2` ON `t1`.`id` = `t2`.`id` GROUP BY `t1`.`id`
左联接确保您拥有t1中的所有行,而COUNT(t2。id)使其仅计算t2.id不为null的记录(即-t2中确实存在的记录)
t2
id