Chuck1sn一种失传已久的 SQL 多表连接查询,你从来没有见过的独门写法。 中发帖

从 Left Join 说起
假设你有这样一个 n2n 的关系表,代表用户和角色之间的关系。
[image]
通常通过 left join 去连接这三张表,来查询出用户及其角色的信息。
SELECT
u.id AS user_id,
u.name AS user_name,
r.name AS role_name
FROM
"user" u
LEFT JOIN
"user_role_map" urm ON u.id = urm.user_id
LEFT JOIN
"role" r ON urm.role_id = r.id;

查询出的结果中,Alice 这个用户出现了两次。这是显而易见的,因为这是一个 “Flatten” 的结果。




user_id
user_name
role_name




1
Alice
Ad...