代码如下:


子查询内部也使用了左连接

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的并集