SQL运行结果有疑问

下面这段sql运行结果我有一些疑问,为什么查询出来会有重复数据?


SELECT
    n.* 
FROM
    sys_role_user RU
    INNER JOIN sys_role_node RN
    INNER JOIN sys_node n 
WHERE
    RU.role_id = RN.role_id 
    AND n.node_id = RN.node_id 
    AND RU.user_id = '1' 
ORDER BY
    n.node_code;

这是表结构和数据:



img

img

img

img

因为 RU.user_id = '1' `
sys_role_user RU 表 有两条数据

ru_idrole_iduser_id
121
1211

条件 role_id [2, 1]
连上 RU.role_id = RN.role_id
sys_role_nod RN 表有下面数据

rn_idrole_idnode_id
111
212
313
421
522
623
724

条件 node_id [1,2,3,1,2,3,4]
连上 n.node_id = RN.node_id
sys_node n 表数据被查出、再排序,就是你截图里的执行结果了