我在我的查詢中使用簡單的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