我的SQL查询返回不同的值。 这是查询:
select *
from Products
where [Product_ID] in (select Product_Id f
from MyCart
where User_Id = '5570928b-7a1b-4652-9c6b-592e76a70a07')
第二个选择查询返回(7,7,3),而第一个选择查询仅返回一个7和3的信息。
我想是因为7是重复的,但是我需要结果包含第二选择中所有产品的信息,无论它们是否重复。
答案 0 :(得分:6)
在这种情况下,请使用JOIN
:
select p.*
from Products p join
MyCart c
on p.Product_Id = c.Product_Id
where c.User_Id = '5570928b-7a1b-4652-9c6b-592e76a70a07';
通常,重复项是不可取的,这就是为什么使用EXISTS
和IN
的原因。