前言

  • 首先有两个表:
  1. 角色表:tb_custrole
    sql join语句 on 和 where 的意义

  2. 角色人员权限表:tb_custpermission
    sql join语句 on 和 where 的意义

正文

  • 我想做的就是:
  1. 联表查询:获得两个表中角色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
  2. 限定条件:两个表中都没被删除的数据
    r.Deleted = 0 AND p.Deleted = 0
  • 其中关于Deleted=0的限定条件 就 ON 和 WHERE 关键字存放位置会取得不同结果。
  1. ON r.id = p.CustRoleId WHERE p.Deleted = 0
    sql join语句 on 和 where 的意义
  2. WHERE p.Deleted = 0 AND r.Deleted = 0
    sql join语句 on 和 where 的意义
  • 不同原因就在于ON 和 WHERE 的执行顺序和实现的操作问题。

问题所在

sql join语句 on 和 where 的意义

相关文章: