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。它可能总是相同的图像,也可能不是。此外,如果找不到图像,查询会引发错误。