Game(p1, p2, pointsp1, pointsp2,),
Participant(name, club, age)
FK Game(p1) references Participant(name),
FK Game(p2) references participant(name)
これは私のリレーショナル・スキーマであると、私はゲームに参加したが、優勝していない参加者の名前のリストを返すようにしようとしています...NOT INをSQLで使用するには?
だから、私は
- がすべて集まってい名前、
- すべてのドロー名
しかし、私はゲームに参加していない人を取り除くことができませんが、参加者の名前列にはまだ名前があります。
私のコードのこの部分は、これは私の完全なコードです
{
SELECT name
FROM Participant
JOIN Game
WHERE Participant.name!=Game.p1
OR Participant.name!=Game.p2
}
が動作していない:
SELECT name
FROM Participant P
WHERE name NOT IN (
SELECT DISTINCT p1
FROM Game G
WHERE pointsp1 > pointsp2
UNION ALL
SELECT DISTINCT p2
FROM Game G
WHERE pointsp1 < pointsp2
UNION ALL
SELECT ender
FROM Game G
WHERE pointsp1 = pointsp2
UNION ALL
SELECT starter
FROM Game G
WHERE pointsp1 = pointsp2
UNION
SELECT name
FROM Participant
JOIN Game
WHERE Participant.name!=Game.p1
OR Participant.name!=Game.p2
)
の可能性のある重複した[NOT INでのSQL文?](http://stackoverflow.com/questions/10132371/not-in-in-sql-statement) –