mysql - 使用外键连接表

标签 mysql database

我有一个名为 player_league 的表,如下所示:enter image description here

userID 和 leagueID 分别是 users 和 leagues 表中引用列的外键。

我想查询数据库以从 player_leagues 表中获取 leagueID 为 1 的所有用户。

这个查询

SELECT leagueID from users join player_league pl WHERE pl.leagueID = 1

返回的数据看起来像 enter image description here

因为我是 mySQL 和 SQL 的新手,所以我想知道我做错了什么?我相信这与我的加入有关,但这可能是我设置表格的方式,我不确定。 users 表中没有 leagueID,所以我不确定为什么每个用户的 leagueID 都是 1。

最佳答案

您缺少指示数据库如何连接两个表的 join 子句的 on 部分。默认是笛卡尔积,即将第一个表中的每一行与第二个表中的每一行连接起来。

在这种情况下,您可以加入 userID:

SELECT u.*
FROM   users u
JOIN   player_league pl ON u.userID = pl.userID
WHERE  pl.leagueID = 1

关于mysql - 使用外键连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37537942/

相关文章:

php - 如何使用 strpos 将数据库中的常见垃圾邮件字段与表单提交进行匹配?

php - 无法禁用 ONLY_FULL_GROUP_BY

c# - 如何获取cassandra中键空间的所有表的列表

database - 为什么数据库总是用圆柱体表示?

mysql - 向 MySQL 中的现有用户授予权限

php - CodeIgniter SQL 查询包含撇号并按特定顺序搜索每一列

php - Laravel 查询生成器 'where' 方法已损坏

mysql - 如何为两个表制作一个共同的自增id

php - 实时战略游戏如何在 PHP 中运行?

MySQL 和 Matlab - 替换整列数据