我是SQL新手并尝试连接2个表来添加计数:
第一个表:插槽,第二个表:预留(带有列slot_id),以便计算与给定插槽相关的预留
group_by slots.id
count reservations.id
我想加入插槽的用户(Slot表中的user_id列)和连接(:user),以及他的电子邮件,但由于group_by
我无法使用此选择select('slots.*, count(reservations.id) as res_count, users.email as email')
如何通过电子邮件加入用户并仍然执行计数?
答案 0 :(得分:0)
您没有提及任何关于用户和插槽之间关系的信息,但假设每个插槽只能有一个用户,您只需将电子邮件添加到group by语句中:
select
s.id as slot_id,
u.email,
count(reservation.id) as num_reservations
from Slot s
left join Reservation r
on s.reservation_id = r.id --assuming this is the key
left join Users u
on s.user_id = u.id
group_by slot.id, u.email;