我有 2 个返回不同结果的 sql 查询。两个查询都使用相同的连接操作,但对 IN 子句内的连接参数的绑定不同。
在第一个上,我直接引用了 join 参数。在第二个我使用免费上下文查询。我得到了不同的结果,我想知道为什么。
-- this one returns 13 tuples
select c.companyname
from companies as c
join stocklist as s
using (companyid)
where s.price in((select MAX(s.price)),( select MIN(s.price)));
--this one returns two tuples. as it should
select companyname
from companies join stockslist
using (companyid)
where price in(
(select max(price) from stockslist),(select min(price) from stockslist)
);