Вы можете использовать exists
:
select p.*
from product p
where exists (select 1 from SalesOrderDetail sd where sd.productid = p.product);
Ваш второй запрос не совпадает с первым запросом. Он сравнивает ProductID
с UnitPrice
, что недействительно. Результатов не должно быть.
Для исходной версии запроса вы можете просто изменить цену единицы дополнительного запроса с помощью Productid
:
where [ProductID] in (select sd.productid from SalesOrderDetail sd)
Однако, если вы хотите unitprice
(который доступен в SalesOrderDetail), тогда этот подзапрос вам не поможет. Вместо этого вам нужно JOIN
.