mysql - 简单的Mysql表连接问题

标签 mysql join

我正在设计一个网站来自学如何在 mysql 中使用表连接,但很早就卡住了。 (数字是 Wii 好友代码,如果这有助于您理解这一点!)

我有 3 个表:

用户:

id, firstname, surname

游戏:

id, title

数字:

number, users_id, game_id

号码是属于用户并与游戏相关联的唯一代码。

我正在尝试获取特定游戏的数字列表及其所属用户的姓名。

我正在运行查询:

SELECT firstname, surname, number FROM games, users, numbers WHERE numbers.game_id = games.id AND games.title = 'foogame'

例如,取出属于foogame的所有数字。但是,这会返回任何没有此游戏代码的用户以及来自其他用户的随机代码。如何使此查询仅返回实际拥有该游戏代码的用户?

最佳答案

我发现如果您实际使用连接会更容易,因为您不会像第一次那样错过连接条件。

SELECT firstname, surname, number 
FROM users u
INNER JOIN numbers n
  on n.users_id = u.id
INNER JOIN games g
  on n.game_id = g.id
WHERE g.title = 'foogame'

INNER JOIN 等同于您所做的 - 它有明确的限制。

关于mysql - 简单的Mysql表连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/562917/

相关文章:

mysql - 奇怪的 MySQL 复制更新错误 (Magento)

mysql - 使用行值连接多个表

sql - oracle中的内部连接

mysql - 未正确加入

sql - 左联接、右联接、外联接和内联接有什么区别?

php - 如何确定从我的 html 表单中获取的输入值的数据类型,以便我可以使用它们在准备好的语句中绑定(bind)参数

mysql - 比较来自 mysql 备份的数据

mysql - 将 MySQL 凭据存储在 MySQL 数据库中

c# - 在 asp 中的日期之后查询数据库会抛出不正确的语法异常

mysql - Codeigniter 数据库加入不接受值而不是列名