2014-11-03 91 views
1

我有两个表:伯爵在左连接

event: id_event, description 

guest: id_guest, id_event 

,我使用下面的查询:

SELECT id_event, description FROM event LEFT JOIN guest ON event.id_event = guest.id_event; 

我需要一个事件出现在来宾表的次数如果没有出现则为零。

回答

2

你是在正确的轨道上,你只需要group by做计数:

SELECT e.id_event, e.description, count(id_guest) as NumTimes 
FROM event e LEFT JOIN 
    guest g 
    ON e.id_event = g.id_event 
GROUP BY e.id_event, e.description; 

你也应该习惯使用表的别名。他们使查询更容易编写和阅读。

+0

Ohhhhhhh谢谢!随着e.description组不会工作,但删除此,并只设置为由id_event组和这项工作:D – 2014-11-03 02:50:43

+0

它如何不适用于这个'group by'?我能想象的唯一错误是如果'description'是一个字段,比如'text'字段,对于'group by'来说太长了。 – 2014-11-03 03:00:43