我有两张桌子,一张有游戏,一张有参与者.
游戏可以有多个参与者.现在我需要搜索是否已插入游戏.我用内连接做了一个查询.
SELECT game.gameId
FROM game
INNER JOIN participants
WHERE game.gameId = participants.gameId
AND participants.name = 'Team1'
AND participants.name = 'Team2'
Run Code Online (Sandbox Code Playgroud)
这不是我预期的方式,有没有办法在一个查询中检查第1组和第2组之间是否匹配?
谢谢!
编辑
tablelayout:
**game**
PK gameId
date
**participants**
PK id
FK gameId
name
type //home or visiting
Run Code Online (Sandbox Code Playgroud)
以下应该有效.它将使用gameID加入游戏和参与者,并确保名称为Team1和Team2.这假设参与者对于游戏是多对多的,并且每场比赛只有两个团队.
SELECT participants.gameId
FROM game
JOIN participants
ON game.gameId = participants.gameId
WHERE participants.name = 'Team1'
OR participants.name = 'Team2'
GROUP BY participants.gameID
HAVING COUNT(*) = 2
Run Code Online (Sandbox Code Playgroud)