Очевидно, что у поставщика есть несколько снятых с производства продуктов.
Если вы хотите, чтобы поставщики имели хотя бы один продукт со скидкой, используйте exists
:
select s.*
from suppliers s
where exists (select 1
from products p
where p.supplierid = s.supplierid and
p.Discontinued = 1
);
Если вы хотите получить список поставщиков с количеством снятых с производства продуктов, используйте join
:
select s.*, p.num_discontinued
from supplier s join
(select p.supplierid, count(*) as num_discontinued
from products
where p.Discontinued = 1
group by p.supplierid
) p
on p.SupplierID = s.SupplierID ;
Если вы хотите получить список товаров, которые больше не продаются у их поставщиков, используйте ваш запрос, но измените left join
на inner join
. Внешнее соединение не требуется.