select event_slots.id as event_slot_id, u.first_name, u.id AS user_id,
sum(case when next_round = 1 then 1 else 0 end) AS yes,
sum(case when next_round = 2 then 1 else 0 end) AS no
from event_slots
left join users as u on u.id = event_slots.selected_by_user_id
left join audition_card_values as acv on acv.user_id = event_slots.selected_by_user_id
where
event_id = 1 and
selected_by_user_id is not null
group by acv.user_id
ergebnis公司:
现在我只需要第一行“first\u name”=“eins”,因为“yes”等于“no”。我怎样才能使这个地方变得庄重?其中yes=no。。。不起作用。
谢谢你的帮助
1条答案
按热度按时间cnh2zyt31#
我想把这个问题表述为:
理论基础:
中的条件表达式
sum()
可以简化你可以使用
having
过滤条款;mysql还支持重用select
合同条款having
从句,所以你可以拼这个:having yes = no
-但是我更喜欢重复条件表达式,因为这是标准的sql这个
left join
在audition_card_values
接着是一个where ... is not null
关于连接列可以重写为一个简单的inner join
我把你的头发修好了group by
条款;中的每个非聚合列select
子句必须出现在group by
条款