前言
- 首先有两个表:
-
角色表:tb_custrole
-
角色人员权限表:tb_custpermission
正文
- 我想做的就是:
- 联表查询:获得两个表中角色id相同的数据
SELECT
r.id AS RId,
r.RoleId AS RoleId,
r.RoleName,
p.id AS PId,
p.PersonUserName AS PersonUserName
FROM
tb_custrole AS r
LEFT JOIN tb_custpermision AS p ON r.id = p.CustRoleId- 限定条件:两个表中都没被删除的数据
r.Deleted = 0 AND p.Deleted = 0
- 其中关于Deleted=0的限定条件 就 ON 和 WHERE 关键字存放位置会取得不同结果。
- ON r.id = p.CustRoleId WHERE p.Deleted = 0
![]()
- WHERE p.Deleted = 0 AND r.Deleted = 0
![]()
- 不同原因就在于ON 和 WHERE 的执行顺序和实现的操作问题。