Select 来自内连接 MSSQL 的一行
Select one row from inner join MSSQL
我有一个问题,我尝试在网上搜索,但找不到解决我问题的方法。
我有 2 个表,一个是 tblproducts,一个是 tblproductImages。
tblproductImages 有一个 fldProduct_FK 匹配 tblproducts fldproductID。
我想select所有产品,但每个产品只有一张图片。
希望有人能提供帮助。
SELECT * FROM tblProduct AS P
INNER JOIN
tblProductImage AS I
ON
P.fldProductID = I.fldProduct_FK
对于 SQL 服务器,这是 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
你可以使用内部 select:
SELECT *, (SELECT TOP 1 fldImageID FROM tblProductImage WHERE fldProduct_FK = tblProduct.fldProductID)
FROM tblProduct
当然,您无法控制图像是否会被 selected。它可能总是相同的图像,也可能不是。此外,如果找不到图像,查询会引发错误。
我有一个问题,我尝试在网上搜索,但找不到解决我问题的方法。
我有 2 个表,一个是 tblproducts,一个是 tblproductImages。
tblproductImages 有一个 fldProduct_FK 匹配 tblproducts fldproductID。
我想select所有产品,但每个产品只有一张图片。
希望有人能提供帮助。
SELECT * FROM tblProduct AS P
INNER JOIN
tblProductImage AS I
ON
P.fldProductID = I.fldProduct_FK
对于 SQL 服务器,这是 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
你可以使用内部 select:
SELECT *, (SELECT TOP 1 fldImageID FROM tblProductImage WHERE fldProduct_FK = tblProduct.fldProductID)
FROM tblProduct
当然,您无法控制图像是否会被 selected。它可能总是相同的图像,也可能不是。此外,如果找不到图像,查询会引发错误。