and 與where 有區別

selec * from t_shop ts left outer join t_member tm on ts.shopid = tm.shopid and tm.memberid is not nullember

和 selec * from t_shop ts left outer join t_member tm on ts.shopid = tm.shopid where tm.memberid  is not null數據

兩句話執行結果有時候會是不一樣的,由於第一句是先將符合條件的member 與shop 作左外鏈接,查 出來的是:全部shop的數據,有會員的包含會員信息,沒有會員的以空代替(跟沒加條件沒區別)join

而第二句作的先是將shop 與member 表作左外鏈接,查出全部shop的信息,與第一句功能同樣,而後在在結果集中篩選全部會員id不爲空的數據,因此第二句查的是全部有會員的shop的信息

固然若是每一個店鋪都有會員的話就不存在區別嘍

相關文章
相關標籤/搜索