我有两张桌子,一张有志愿者,一张有活动场地。志愿者每人分配一个场地。
场馆表的id(ventures.id)放在场馆id栏的志愿者表中(志愿者.场馆id)。
我知道我可以通过
SELECT venue_id, COUNT(*) FROM volunteers GROUP BY venue_id
为什么我要这么做:这样用户就可以进去看看每个场馆分配了多少志愿者。
表:志愿者——列:id、姓名、地点id
表:场馆——列:id,场馆名称
志愿者.venture_id=场馆.id
我知道这将是某种形式的连接声明,因此它将得到每个场馆的计数,然后将志愿者.场馆id与场馆id匹配,并打印出场馆.场馆名称和计数。
我该如何加入这两张表格打印出场馆名称,并在旁边列出每个志愿者的人数和场馆id?
最佳答案
这将为您提供所有的场馆,没有志愿者的场馆将出现0个志愿者
select venues.venue_name, count(*) as volunteer_count
from venues
left outer join volunteers
on venues.id = volunteers.venue_id
group by venues.venue_name
[编辑]我刚意识到你要的是MySQL。我不记得MySQL是使用左连接还是左外部连接。上面的语法对于SQLSERVER是正确的。关键是外部连接,而不是内部连接,以获得没有志愿者的场馆。
关于php - 如何获得重复值的计数并加入表以检索每个值的名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/224295/