我收到了这个问题:
SELECT ent_video_tipo, count(ent_video_tipo) as cnt
FROM entradas
WHERE entradas.ent_user= '1'
GROUP BY ent_video_tipo
ORDER BY cnt DESC
这会给我:
ent_video_tipo|cnt
3 | 3
1 | 3
4 | 1
2 | 1
当我做的时候
SELECT ent_video_tipo, count(ent_video_tipo) as cnt
FROM entradas
WHERE entradas.ent_user= '2'
GROUP BY ent_video_tipo
ORDER BY cnt DESC
我得到了
ent_video_tipo|cnt
1 | 4
2 | 2
3 | 2
我希望ent_video_tipo = 4
收到零。喜欢这个
ent_video_tipo|cnt
1 | 4
2 | 2
3 | 2
4 | 0
ent_video_tipo
有自己的表格:
type_id|type_name
1 | a
2 | b
3 | c
4 | d
答案 0 :(得分:5)
好的,因为ent_video_tipo有自己的类型,你可以使用左连接作为
SELECT
evt.type_id,
coalesce(count(e.ent_video_tipo),0) as cnt
FROM ent_video_tipo evt
left join entradas e on e.ent_video_tipo = evt.type_id
AND e.ent_user= '2'
GROUP BY evt.type_id
ORDER BY cnt DESC ;
<强> DEMO 强>
更新这是另一种方式
select
evt.type_id,
coalesce(cnt,0) as cnt
from ent_video_tipo evt
left join
(
select
ent_video_tipo,
count(ent_video_tipo) as cnt
FROM entradas
WHERE ent_user= '2'
GROUP BY ent_video_tipo
)e
on e.ent_video_tipo = evt.type_id
<强> DEMO 强>