我有想出這種情況的工作查詢的麻煩......查詢設計與分組
表:
[ matchID ] [ User ] [ team ]
1 10 1
1 77 2
2 10 1
2 77 1
3 10 2
4 10 1
注:
- 有時對手是未知的,例如在比賽2,3和4中
- 有時一個團隊有上側只有一個人,例如比賽1
- 有時一個團隊具有n上的一側的人,例如比賽2
所需的查詢結果:
列表對於未知對手的給定用戶的matchID。
我第一次嘗試是:
SELECT matchID FROM table
GROUP BY matchID
HAVING COUNT(matchID) = 1
但後來我意識到,我是不計算在有隊友,但未知的對手,如上述第2場比賽。
用簡單的英語,我需要得到所有matchIDs其中:
- 涉及給定用戶< - 編輯追加
- 每個人都在同一支球隊
- 或只有一條人列出
但我不知道如何在一個查詢中有效地做到這一點。幫幫我?
如何匹配1有「一邊用戶」? – davogotland 2012-01-13 00:44:22
@davogotland「一個用戶*每個*方」,我想。 – 2012-01-13 00:45:01
是的,在比賽1中,球隊1只有一名成員 - 用戶10 – Drew 2012-01-13 00:46:53