Объединение аксессуаров с продуктами из заказа - PullRequest
0 голосов
/ 29 марта 2019

Это мои таблицы:

Order 
-Id PK
-Timestamp
-Seller
-Buyer

OrderItem
-Id PK
-OrderId FK
-ProductId FK
-AccessoryId FK

Products
-Id PK
-Name
-Price

Accessories
-Id PK
-Name
-Price

ProductAccessories
-Id PK
-ProductId FK
-AccessoryId FK

Теперь у меня есть следующий запрос, чтобы получить все заказы, которым исполнился хотя бы 1 год:

SELECT [Id]
      ,[Timestamp]
      ,[Seller]
      ,[Buyer]
  FROM [dbo].[Order]
  WHERE Timestamp <= getdate()-365

Теперь к моему вопросу.После выполнения этого запроса мне нужна помощь с другим. Я хочу получить все аксессуары, которые имеют поддельный ключ к продукту, который был частью определенного OrderId, полученного по запросу выше .

Я не могу понять, сколько соединений мне нужно сделать здесь.

1 Ответ

0 голосов
/ 29 марта 2019

Это требует много JOIN с, но я думаю, что это то, что вы хотите

SELECT a.*
  FROM [dbo].[Order] o
  JOIN OrderItem oi ON oi.OrderId = o.Id
  JOIN Products p ON p.Id = oi.ProductId
  JOIN ProductAccessories pa ON pa.ProductId = p.Id
  JOIN Accessories a ON a.Id = pa.AccessoryId
  WHERE o.[Timestamp] <= DATEADD(year, -1, GETDATE())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...