That's a tough one!
First you have to LEFT JOIN
the SalesHistory
to the Product
table.
Mind that we are interested ONLY in products sold BETWEEN
the 2015-02-01 AND
2015-02-05 so we need to add filtering before the LEFT JOIN
as applied:
AND Date BETWEEN '2015-02-01' AND '2015-02-05'
Then we can safely join the producer table. We'd like to display all products, even the ones that belong to no company, so we need to use LEFT JOIN
.
However, mind that we wanted to return the name of products that weren't sold on that day, so we have to apply one final condition:
WHERE Sh.ProductId IS NULL
Type:
SELECT
P.Name AS ProductName,
P.Price,
Prod.Name AS CompanyName
FROM Product P
LEFT JOIN SalesHistory Sh
ON P.Id = Sh.ProductId
AND Date BETWEEN '2015-02-01' AND '2015-02-05'
LEFT JOIN Producer Prod
ON P.ProducerId = Prod.Id
WHERE Sh.ProductId IS NULL