Eventhosts - 包含三个常规主机和“其他”字段(如果有人代替)或编辑:作为一个嘉宾主持(除了常客)计数和连接两个表
eventid | host (SET[Steve,Tim,Brian,other])
-------------------------------------------
1 | Steve
2 | Tim
3 | Brian
4 | Brian
5 | other
6 | other
事件
id | other | name etc.
----------------------
1 | | …
2 | | …
3 | | …
4 | Billy | …
5 | Billy | …
6 | Irwin | …
这个查询:
SELECT h.host, COUNT(*) AS hostcount
FROM host AS h
LEFT OUTER JOIN event AS e ON h.eventid = e.id
GROUP BY h.host
返回:
Steve | 1
Tim | 1
Brian | 2
other | 2
我想它返回:
Steve | 1
Tim | 1
Brian | 2
Billy | 1
Irwin | 1
OR:
Steve | | 1
Tim | | 1
Brian | | 2
other | Billy | 1
other | Irwin | 1
而且不:
Steve | | 1
Tim | | 1
Brian | | 1
Brian | Billy | 1
other | Billy | 1
other | Irwin | 1
有人可以告诉我如何实现这个目标或指向一个方向吗?
谢谢,但这只会返回前“其他”主机,而不是第二个。 – Eikern 2010-04-23 13:14:56
嗯..它不会返回欧文?有趣。我的查询的输出是什么? – 2010-04-23 13:18:45
那么我的例子是我的数据库的简化版本,它非常相似。并翻译它返回:史蒂夫,11; Tim,11岁; Brian,5岁;比利,2。(比利应该有1和欧文之一。) – Eikern 2010-04-23 13:22:31