我有一个父表“ProductCategory”和一个子表“Product”。我有这个查询返回 3 个随机产品:
SELECT TOP (3) ProductId
FROM Product
ORDER BY NEWID();
我想增强该查询以实现所有产品都来自不同的产品类别。因此,获取唯一类别的查询将是:
SELECT TOP (3) ProductCategoryId
FROM ProductCategory
ORDER BY NEWID();
我无法弄清楚如何结合这两个查询来实现我的目标。显而易见的查询
SELECT TOP (3) p.ProductId
FROM Product p
where p.productcategory_ProductCategoryId in
(
SELECT TOP (3) ProductCategoryId pc
FROM ProductCategory pc
ORDER BY NEWID()
)
ORDER BY NEWID();
不起作用。似乎内部选择语句被忽略了。我还尝试使用 EXISTS 语句或加入表。所有的结果都是一样的。
有人有想法吗?提前非常感谢!