加入子查詢

當你想要從子/詳細資訊表中獲取聚合資料並顯示與父/頭表中的記錄一起時,通常會使用加入子查詢。例如,你可能希望獲取子記錄的計數,子記錄中某些數字列的平均值,或基於日期或數字欄位的頂部或底部行。此示例使用別名,當涉及多個表時,可論證使查詢更容易閱讀。這是一個相當典型的子查詢連線的樣子。在這種情況下,我們從父表 Purchase Orders 中檢索所有行,並僅檢索子表 PurchaseOrderLineItems 的每個父記錄的第一行。

SELECT po.Id, po.PODate, po.VendorName, po.Status, item.ItemNo, 
  item.Description, item.Cost, item.Price
FROM PurchaseOrders po
LEFT JOIN 
     (
       SELECT l.PurchaseOrderId, l.ItemNo, l.Description, l.Cost, l.Price, Min(l.id) as Id 
       FROM PurchaseOrderLineItems l
       GROUP BY l.PurchaseOrderId, l.ItemNo, l.Description, l.Cost, l.Price
     ) AS item ON item.PurchaseOrderId = po.Id