我不知道这个查询有什么问题:
select * from products , top 1 * from pic
where products.productId = pic.productId
我有 Products 和 Pic 表,每个产品可以有 1 到 n 个图片,我想退回每个产品和第一张图片
图表图片可能会有所帮助
最佳答案
您需要有一种方法来唯一标识每张图片,所以我将该表假设为 ID 列...
SELECT
*
FROM
products
LEFT JOIN
pic
ON pic.Id = (SELECT TOP 1 id FROM pic WHERE productID = products.ProductID ORDER BY id DESC)
编辑
受另一个答案的启发,改为使用 APPLY...
SELECT
*
FROM
products
OUTER APPLY
(SELECT TOP 1 * FROM pic WHERE productID = products.ProductID ORDER BY id DESC) AS pic
关于sql server 顶级查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6097623/