我在我的查询中使用简单的Left Join
,但问题查询未按预期工作。左连接不按预期方式工作
查询
select m.* from Menu m
left join MenuRole mr on m.Id=mr.MenuID
where mr.DesignationID=1
菜单表
MenuRole表
查询
的问题是Employee data
的输出从结果失踪,parentID column
与Id=0
也不翼而飞。
我在我的查询中使用简单的Left Join
,但问题查询未按预期工作。左连接不按预期方式工作
查询
select m.* from Menu m
left join MenuRole mr on m.Id=mr.MenuID
where mr.DesignationID=1
菜单表
MenuRole表
查询
的问题是Employee data
的输出从结果失踪,parentID column
与Id=0
也不翼而飞。
这是由where子句引起的,当threre不匹配时,DesignationId为null,因此DesignationId = 1不正确。
试试这个:
select m.* from Menu m
left join MenuRole mr on m.Id=mr.MenuID and mr.DesignationID=1
假设MenuRole是你的 “员工” 的数据,那么你的问题是M *选择列表。 MenuRole别名是mr。尝试选择*或选择m。 ,先生。,尽管仅检索所需的字段被认为是更好的。
我猜你的ParentID = 0的角色是由你的WHERE子句筛选出来的,虽然有些测试是有保证的。它在MenuRole数据的可见部分中没有匹配,因此假设它真的不存在,则mr.DesignationID将为null。
添加您的条件'mr.DesignationID = 1'旁边的On子句不在Where – EagerToLearn