我有兩個表定義遊戲細節:一個表與遊戲和一個移動表。總計子查詢或加入計數
我可以告訴誰是把它是
SELECT (COUNT(idx) %2) FROM history WHERE gameID=x
的結果= 1
它的白色和結果= 0的黑色。
現在我想選擇一系列特定的遊戲,它是我的舉動。
我不知道我是白人還是黑人。
所以現在我用另一種查詢遊戲:
SELECT g.gameID
FROM games AS g
WHERE (g.whitePlayer = 2 or (g.blackPlayer = 2)
然後我用遊戲ID,看它是否是我的舉動。如果沒有,那麼我跳過那場比賽。
我想這兩個結合起來,我試圖讓一個聚合的子集,但是未成功,因爲COUNT()
例如,這並不工作,並沒有返回值:
SELECT *
FROM games as g
WHERE (g.whitePlayer = 2)
AND gameID IN (SELECT gameID
FROM history as h
HAVING (COUNT(h.idx) %2) = 1)
或
SELECT COUNT(h.idx)
FROM history as h
INNER JOIN
(SELECT gameID
FROM games
WHERE (whitePlayer = 2)) As thesegames ON h.gameID = thesegames.gameID
HAVING (COUNT(h.idx) %2) = 1
有沒有人有關於如何解決這個問題的線索?
http://sqlfiddle.com/#!2/425fb
請記住,* AUTO_INCREMENT *只能保證在表中是唯一。他們不能保證順序排列,也不能重複使用。如果您必須處理事務性表的回滾,那麼尤其如此:http://sqlfiddle.com/#!2/2d39c/1。不提及你的數據庫中的併發插入。 –