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
)
의 사용 가능한 복제 [안에서의 SQL 문?] (http://stackoverflow.com/questions/10132371/not-in-in-sql-statement) –