sql - 如何在内连接上搜索多个值

标签 sql mysql

我有两张 table ,一张是游戏,一张是参与者。

一个游戏可以有多个参与者。现在我需要搜索是否已插入游戏。我使用内部联接进行了查询。

SELECT game.gameId
FROM game 
INNER JOIN participants 
WHERE game.gameId = participants.gameId 
AND participants.name = 'Team1' 
AND participants.name = 'Team2'

这没有按我预期的方式工作,有没有办法在一个查询中检查团队 1 和 2 之间是否匹配?

谢谢!

编辑

表格布局:

**game**
PK gameId
date

**participants**
PK id
FK gameId
name
type //home or visiting

最佳答案

以下应该有效。它将使用游戏 ID 加入游戏和参与者,并确保名称为 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

关于sql - 如何在内连接上搜索多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4098012/

相关文章:

mysql - 使用 ID 连接到另一个表时连接名字和姓氏

mysql - 全文搜索返回空结果时出现问题

mysql - 从nodejs调用存储过程返回错误

mysql - rails : How to handle existing invalid dates in database?

sql - 自增问题postgresql

mysql - 表中子集内部子集的数据库设计

php - 如何让搜索引擎索引数据库驱动的内容?

mysql - 如何在特定时间间隔运行MySQL删除查询?

mysql - 如何检查查询中的条件。

php - 检查准备好的语句 PDO 的结果?