当我执行sql时,为什么结果仍然包含isuser=1的数据:

SELECT *
FROM sys_userdept
LEFT JOIN sys_deptdef sys_deptdef ON sys_userdept.nodeid=sys_deptdef.deptid
AND isuser=0 ORDER BY sys_userdept.pnodeid,sys_userdept.relationid;

最佳答案

这是因为您使用LEFT JOIN-它从第一个表中获取所有记录,即使联接表中没有匹配的记录。
isuser=0条件移动到WHERE

select *
from sys_userdept
left join sys_deptdef sys_deptdef on sys_userdept.nodeid=sys_deptdef.deptid
where isuser=0
order by sys_userdept.pnodeid,sys_userdept.relationid;

关于sql - 如何解释结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18739278/

10-11 03:41