Я получил родительскую таблицу «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 или присоединения к таблицам. Все с одинаковым результатом.
У кого-нибудь есть идея? Заранее большое спасибо!