Rails 4中的SQL JOIN COUNT和SELECT

时间:2015-03-24 20:44:58

标签: sql ruby-on-rails join

我是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')

如何通过电子邮件加入用户并仍然执行计数?

1 个答案:

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