Mysql SQL-不知道如何连接三个表

Mysql SQL-不知道如何连接三个表,mysql,sql,join,inner-join,jointable,Mysql,Sql,Join,Inner Join,Jointable,我有四张这样的桌子: **USERS** ___________________________ user_ID username password --------------------------- 1 user1 1234 2 user2 5678 **TEAMS** ______________________________________ team_ID formation tea

我有四张这样的桌子:

       **USERS**
___________________________
user_ID  username  password
---------------------------
1        user1     1234
2        user2     5678


              **TEAMS**
______________________________________  
team_ID  formation  team_name  user_ID
--------------------------------------
1        4-4-2      team1      1
2        4-3-3      team2      2

            **PLAYERS** 
____________________________________    
player_ID  name     position  rating
------------------------------------
1          Ronaldo  LW        94
2          Messi    RW        93
3          Hazard   LW        90

         **ACTIVE PLAYERS** 
___________________________________
ID  player_ID  team_ID  cardview_ID
-----------------------------------
1   1          2        9
2   3          1        7
3   2          1        3  
_____________________________
name    rating    cardview_ID
-----------------------------
Hazard  90        7
Messi   94        3
每个用户都有一个带有队形和队名的团队。活动玩家表将玩家ID与团队ID一起引用,以查看哪些玩家当前在哪些团队中处于活动状态

假设user1登录到应用程序,然后我想获得所有玩家的姓名、等级和他们的cardview\u ID。应该是这样的:

       **USERS**
___________________________
user_ID  username  password
---------------------------
1        user1     1234
2        user2     5678


              **TEAMS**
______________________________________  
team_ID  formation  team_name  user_ID
--------------------------------------
1        4-4-2      team1      1
2        4-3-3      team2      2

            **PLAYERS** 
____________________________________    
player_ID  name     position  rating
------------------------------------
1          Ronaldo  LW        94
2          Messi    RW        93
3          Hazard   LW        90

         **ACTIVE PLAYERS** 
___________________________________
ID  player_ID  team_ID  cardview_ID
-----------------------------------
1   1          2        9
2   3          1        7
3   2          1        3  
_____________________________
name    rating    cardview_ID
-----------------------------
Hazard  90        7
Messi   94        3
这些是目前活跃在user1团队(即team1)中的玩家

我怎样才能得到这个连接表?我尝试过内部连接,但这似乎对我不起作用

_______________________________编辑_____________________________________

这是一个没有给出所需结果的查询:

SELECT players.name, players.rating, activeplayers.cardview_ID
FROM players
INNER JOIN
activeplayers
ON players.player_ID = usedplayers.player_ID

我还尝试通过团队ID加入他们。

假设您有可用的登录用户ID,我认为这将满足您的要求:

SELECT
    [PLAYERS].name,
    [PLAYERS].rating,
    [ACTIVE PLAYERS].cardview_ID
FROM [TEAMS]
JOIN [ACTIVE PLAYERS]
ON [TEAMS].team_ID = [ACTIVE PLAYERS].team_id
JOIN [PLAYERS]
ON [PLAYERS].player_id = [ACTIVE PLAYERS].player_id
WHERE [TEAMS].user_id = <logged_in_user_id>

另外,请注意要求澄清细节的问题,如果此问题让您参与其中,但您需要更多信息,请随时回复。尖括号中的内容当然是占位符。我也不知道您确切的表名,因此您可能需要将方括号中的内容替换为实际的表名。

假设您有可用的登录用户ID,我认为这将满足您的要求:

SELECT
    [PLAYERS].name,
    [PLAYERS].rating,
    [ACTIVE PLAYERS].cardview_ID
FROM [TEAMS]
JOIN [ACTIVE PLAYERS]
ON [TEAMS].team_ID = [ACTIVE PLAYERS].team_id
JOIN [PLAYERS]
ON [PLAYERS].player_id = [ACTIVE PLAYERS].player_id
WHERE [TEAMS].user_id = <logged_in_user_id>

另外,请注意要求澄清细节的问题,如果此问题让您参与其中,但您需要更多信息,请随时回复。尖括号中的内容当然是占位符。我也不知道您确切的表名,因此您可能需要用实际的表名替换方括号中的内容。

假设您文章中的查询包含输入错误,实际上是这样的:

SELECT players.name, players.rating, activeplayers.cardview_ID
FROM players
INNER JOIN
activeplayers
ON players.player_ID = activeplayers.player_ID
此查询将正确返回所有活动玩家。现在,为了将其仅限于TeamForUser1,您需要向Teams表中添加一个额外的联接,与上面的联接方式相同,然后添加一个WHERE子句,该子句在Teams.UserID上进行过滤


就是这样。

假设您帖子中的查询包含输入错误,实际上是这样的:

SELECT players.name, players.rating, activeplayers.cardview_ID
FROM players
INNER JOIN
activeplayers
ON players.player_ID = activeplayers.player_ID
此查询将正确返回所有活动玩家。现在,为了将其仅限于TeamForUser1,您需要向Teams表中添加一个额外的联接,与上面的联接方式相同,然后添加一个WHERE子句,该子句在Teams.UserID上进行过滤


就这样。

您尝试的加入以何种方式无效?Join是正确的解决方案。你的问题在哪里?@TabAlleman你能帮我写正确的Join吗?当我尝试在团队ID或玩家ID上加入他们时,我得到的行比我想要的这两行多得多。如果发布查询,我将帮助您调试查询,从而帮助您编写正确的加入。我不会为你写的。@TabAlleman-我现在编辑了我的问题。你尝试的加入在什么方面不起作用?Join是正确的解决方案。你的问题在哪里?@TabAlleman你能帮我写正确的Join吗?当我尝试在团队ID或玩家ID上加入他们时,我得到的行比我想要的这两行多得多。如果发布查询,我将帮助您调试查询,从而帮助您编写正确的加入。我不会为你写的。@TabAlleman-我现在编辑了我的问题。这很好;我下面的答案提供了一个模型,说明如何实现第三次连接,为用户添加WHERE子句这很好;我下面的答案提供了一个模型,说明了如何实现第三次加入,为用户添加WHERE子句。我不知道为什么有人在某一点上否决了你的问题,因为这个问题绝对有效!快乐编码:可能是因为我一开始没有发布我的查询。愚蠢的错误。谢谢你的帮助:我不知道为什么有人在某一点上否决了你的问题,因为这个问题绝对有效!快乐编码:可能是因为我一开始没有发布我的查询。愚蠢的错误。感谢您的帮助: