加入子查詢
當你想要從子/詳細資訊表中獲取聚合資料(例如 Count,Avg,Max 或 Min)並顯示與父/ header 表中的記錄一起時,通常會使用加入子查詢。例如,你可能希望根據日期或標識檢索頂部/第一個子行,或者你希望計算所有子行數或平均值。
此示例使用別名,當涉及多個表時,這些別名使查詢更易於閱讀。在這種情況下,我們從父表 Purchase Orders 中檢索所有行,並從子表 PurchaseOrderLineItems 中僅檢索最後一個(或最近的)子行。此示例假定子表使用增量數字 Id。
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, Max(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