1
我有2個sql查詢返回不同的結果。 這兩個查詢都使用相同的連接操作,但對IN子句內的連接參數具有不同的綁定。來自內部的SQL影響連接結果
第一個,我直接參考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)
);
+1。在技術術語中,第一個查詢具有*相關*子查詢(因爲它們與來自外部查詢的當前記錄「相關聯」),而第二個查詢具有*不相關*子查詢(因爲它們根本不參考到其他查詢中的任何內容)。 – ruakh
+1我不知道,謝謝:) – MimiEAM