Rails 4中的SQL连接计数和选择
我是SQL新手,正在尝试联接两个表以添加计数: 第一个表:Slot,第二个表:Reservation(带有列Slot\u id),以便统计与给定Slot关联的保留Rails 4中的SQL连接计数和选择,sql,ruby-on-rails,join,Sql,Ruby On Rails,Join,我是SQL新手,正在尝试联接两个表以添加计数: 第一个表:Slot,第二个表:Reservation(带有列Slot\u id),以便统计与给定Slot关联的保留 group_by slots.id count reservations.id 我想用join(:user)将插槽(插槽表中的user\u id列)的用户与其电子邮件连接起来,但我无法使用此select,因为组由 select('slots.*, count(reservations.id) as res_count, use
group_by slots.id
count reservations.id
我想用join(:user)将插槽(插槽表中的user\u id列)的用户与其电子邮件连接起来,但我无法使用此select,因为组由
select('slots.*, count(reservations.id) as res_count, users.email as email')
如何加入用户的电子邮件并仍然执行计数?您没有提到任何关于用户和插槽之间关系的内容,但是假设每个插槽只能有一个用户,您也应该将电子邮件添加到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;