ゲームの詳細を定義する 2 つのテーブルがあります。1 つはゲームのテーブル、もう 1 つは動きのテーブルです。
誰の番かわかる
SELECT (COUNT(idx) %2) FROM history WHERE gameID=x
result=1 の場合は白、result=0 の場合は黒です。
ここで、特定の一連のゲームを選択したいと思います。
ゲームで私が白人か黒人かはわかりません。
そこで、ゲームに別のクエリを使用します。
SELECT g.gameID
FROM games AS g
WHERE (g.whitePlayer = 2 or (g.blackPlayer = 2)
次に、gameID を使用して、それが自分の動きかどうかを確認します。そうでない場合は、そのゲームをスキップします。
これら2つを結合したいので、集約サブセットを作成しようとしましたが、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
誰もこれを解決する方法の手がかりを持っていますか?