【发布时间】:2013-12-10 00:02:35
【问题描述】:
我正在编写查询以从两个表 Products 和 ProductsImages 中获取数据。 我的查询是:
SELECT p.*, pi.*
FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY ProductId, ProductPrice
ORDER BY ProductId) AS row_number FROM Products ) p
INNER JOIN ( SELECT *, ROW_NUMBER()
OVER (PARTITION BY ProductId, ImageId,ImagePath
ORDER BY ImageId) AS row_number FROM ProductsImages ) pi
ON p.ProductId = pi.ProductId
AND p.row_number = pi.row_number
Where p.ProductId='131';
我必须编写一个运行 INNER JOIN 的条件,即:如果 ProductsImages 有提供 productId 的图像,则执行 INNER JOIN否则它应该在没有加入的情况下运行。并且只显示除图片之外的产品详细信息。如果 productsImages 没有任何图片,则此查询不会显示产品详细信息,例如名称和价格。
限制:我只需要实现 INNER JOIN。
请帮助我并指导我在这种情况下如何实现 if-exits 条件。谢谢
【问题讨论】:
-
this one 不是我的问题。
标签: c# asp.net sql query-optimization