如果我有两个表,如
用户表 - “你”
userid | name
1 | lenova
2 | acer
3 | hp
传递表格 - “p”
userid | password
1 | len123
2 | acer123
3 | hp123
至于我从教程中学到的东西,我可以使用许多可用的连接来加入这两个表 mysql如here
所述如果我有一张像
这样的表格角色表 - “r”
roleid | rname
1 | admin
2 | user
3 | dataanalyst
令牌表 - “t”
tokenid| tname
1 | xxxx
2 | yyyy
3 | zzzz
tole_token_association table-“a”
roleid | tokenid
1 | 1
1 | 2
3 | 1
3 | 3
3 | 1
我必须进行连接,以便我必须显示一个对应的表 像这个“角色名称”拥有所有这些令牌。如何做到这一点?我很迷惑。是否可以加入?我很喜欢mysql。我希望玩那些不玩的查询。我想要精通。有什么建议吗?
答案 0 :(得分:1)
最简单的方法是查看需要连接的列名何时命名相同:
SELECT r.rname,
t.tname
FROM ROLE r
JOIN ROLE_TOKEN_ASSOCIATION rta ON rta.roleid = r.roleid
JOIN TOKEN t ON t.tokenid = rta.tokenid
这将仅返回与关联标记的角色。如果您的角色没有关联的令牌,则需要使用OUTER连接,如下所示:
SELECT r.rname,
t.tname
FROM ROLE r
LEFT JOIN ROLE_TOKEN_ASSOCIATION rta ON rta.roleid = r.roleid
JOIN TOKEN t ON t.tokenid = rta.tokenid