我遇到了问题,我尝试在网上搜索,但无法找到解决问题的方法。
我有2个表,一个是tblproducts,另一个是tblproductImages。
tblproductImages有一个与tblproducts fldproductID匹配的fldProduct_FK。
我想选择所有产品,但每种产品只能选择一张图片。
希望有人可以提供帮助。
SELECT * FROM tblProduct AS P
INNER JOIN
tblProductImage AS I
ON
P.fldProductID = I.fldProduct_FK
答案 0 :(得分:3)
对于SQL Server,这是cross apply
SELECT *, II.*
FROM tblProduct AS P
CROSS APPLY (
SELECT top 1 * FROM tblProductImage AS I
where P.fldProductID = I.fldProduct_FK
) AS II
答案 1 :(得分:1)
您可以使用内部选择:
SELECT *, (SELECT TOP 1 fldImageID FROM tblProductImage WHERE fldProduct_FK = tblProduct.fldProductID)
FROM tblProduct
当然,您无法控制将选择该图像。它可能始终是相同的图像,也可能不是。此外,如果找不到图像,查询将引发错误。