我在查询中使用了一个简单的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
也丢失了。
答案 0 :(得分:2)
这是由where子句引起的,当strre不匹配时,DesignationId为null,因此DesignationId = 1不为真。
试试这个:
select m.* from Menu m
left join MenuRole mr on m.Id=mr.MenuID and mr.DesignationID=1
答案 1 :(得分:0)
假设MenuRole是您的“员工”数据,那么您的问题是m。*选择列表。 MenuRole别名是先生。尝试选择*或选择m。,先生,尽管最好只检索所需的字段。
我猜你的WHID子句筛选出你的ParentID = 0的角色,尽管有些测试是有保证的。它在MenuRole数据的可见部分中没有匹配,因此mr.DesignationID将为null,假设它确实不存在。