SELECT Orders.OrderNumber, LineItems.Quantity, LineItems.Description
FROM Orders
JOIN LineItems
ON LineItems.LineItemGUID =
(
SELECT TOP 1 LineItemGUID
FROM LineItems
WHERE OrderID = Orders.OrderID
)
Di SQL Server 2005 dan di atasnya, Anda bisa mengganti INNER JOIN
dengan CROSS APPLY
:
SELECT Orders.OrderNumber, LineItems2.Quantity, LineItems2.Description
FROM Orders
CROSS APPLY
(
SELECT TOP 1 LineItems.Quantity, LineItems.Description
FROM LineItems
WHERE LineItems.OrderID = Orders.OrderID
) LineItems2
Harap diperhatikan bahwa TOP 1
tanpa ORDER BY
tidak deterministik:kueri ini Anda akan mendapatkan satu item baris per pesanan, tetapi tidak ditentukan yang mana.
Beberapa permintaan kueri dapat memberi Anda item baris yang berbeda untuk pesanan yang sama, meskipun yang mendasarinya tidak berubah.
Jika Anda ingin urutan deterministik, Anda harus menambahkan ORDER BY
klausa ke kueri terdalam.
Contoh sqlfiddle