請問這種是多表連接嗎?
select
(select a.cl from a where a.id = b.id )
from b;
與下面的查詢結果有區別嗎?感謝各位大神
select a.cl
from a , b
where a.id = b.id;
uj5u.com熱心網友回復:
實質上都是表連接,但前者和后者的意義是不一樣的,前者實際上是個外連接:select a.cl
from a , b
where a.id(+) = b.id;
uj5u.com熱心網友回復:
前者為標量子查詢,后者為標準的內連接,區別肯定有,結果集有可能不同,性能也可能不一樣。
uj5u.com熱心網友回復:
兩者意義肯定不同啊。而且,select (select a.cl from a where a.id = b.id )from b;可能會報錯,當select a.cl from a where a.id = b.id回傳多個結果時,會報結果不唯一的錯誤uj5u.com熱心網友回復:
第一種,如果b表的一條記錄,對應a表的多條記錄,就會報錯。第二種,b表的一條記錄,對應a表的多條記錄,不會報錯。
實際這兩種寫法,差異比相同的地方更多。
多試一下,會有更多發現。
uj5u.com熱心網友回復:
第一種為標量子查詢,第二種為內連接,一定是有區別的。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/11559.html
標籤:開發
上一篇:insert all 求解
