1. 程式人生 > >兩個sql查詢語句之間的左連線left join

兩個sql查詢語句之間的左連線left join

程式碼如下:

子查詢內部也使用了左連線

select a.id, a.thumbNail,a.name,a.marketPrice,a.memberPrice ,a.personName,a.status,a.recieveOrderDate,a.trackNumber,a.contact,a.reportSendDate,b.trackNumber,a.reportDownloadPath from 
(select od.id, ps.thumbNail,ps.name,od.marketPrice,od.memberPrice ,od.personName,od.status,od.recieveOrderDate,ol.trackNumber,ol.contact,od.reportSendDate,od.reportSendOrderLogisticId,od.reportDownloadPath 
from orders.order_detail od
LEFT JOIN orders.order_logistics ol
on od.recieveOrderLogisticId = ol.id 
LEFT JOIN orders.product_snapshot ps 
on od.productSnapShotId=ps.id 
WHERE od.valid=true and ol.valid=true and od.orderId=? ) a
 left join 
(select ol.trackNumber ,od.id from orders.order_detail od LEFT JOIN orders.order_logistics ol on od.reportSendOrderLogisticId=ol.id where od.valid=true and ol.valid=true and od.orderId=?) b
on a.id=b.id

INNER JOIN     等價於   JOIN
你可以理解為  JOIN   是  INNER JOIN   的縮寫
LEFT JOIN  等價於   LEFT  OUTER   JOIN
RIGHT JOIN  等價於   RIGHT OUTER   JOIN

逗號與inner等同,即只查詢兩表條件均滿足的資料。
left join,左表資料多於右表
right join,與left join相反
full join,即是left join和right join的並集