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