为啥要用left join on where这样的东西

1

SELECT a.VILLAGENAME,a.DELIVERYADDTIME,a.DELIVERYTYPE,b.name,b.DELIVERY_AREA_DESC,b.PICKUP_AREA_DESC
from T_WEB_TOWNSHIPDELIVERY a LEFT JOIN
T_BAS_SALES_DEPARTMENT b
ON a.DELIVERYSALESDEPTCODE = b.code where a.VILLAGECODE = '310118010'

2

SELECT a.VILLAGENAME,a.DELIVERYADDTIME,a.DELIVERYTYPE,b.name,b.DELIVERY_AREA_DESC,b.PICKUP_AREA_DESC
from T_WEB_TOWNSHIPDELIVERY a,
T_BAS_SALES_DEPARTMENT b
WHERE a.DELIVERYSALESDEPTCODE = b.code
and a.VILLAGECODE = #{code,jdbcType = VARCHAR}

如果用第二种,那么当在b表中查不到code的时候,这时候查询不到数据,返回的全是空,但是a表里面却会有数据,那么这个时候就不对了。
而用1查,就是将a表查到的东西和b表查到的结合,不管b有没有查到东西,a中查到的东西这个时候是都会返回的。

猜你喜欢

转载自www.cnblogs.com/woainixxx/p/10883087.html