你好,我很困惑三個場景,通常每個人在幾乎每個項目中都使用它。SQL查詢效率(JOIN或笛卡爾乘積)
我想知道這其中的一個將高效accordinng到
- 更短的時間複雜度
- 效率
- 效益
表A(用戶ID,用戶名,電子郵件,電話)
表B (用戶名,TestField)
。
案例1
select email, TestField from TableA , TableB
where TableA.username = TableB.username and
TableB.username = 'ABC'
group by email, TestField
案例2
select email, TestField from TableA
inner join TableB on TableB.username = 'ABC'
案例3
declare @uname nvarchar(20);
set @uname = 'ABC';
declare @Email nvarchar(20);
select @Email= email from TableA where username = @uname;
select @Email as email , TestField from TableB
where username = @uname
在SQL Server上,您具有「顯示估計執行計劃」功能。它會告訴你查詢花了多長時間,並且還爲你提供了大量的簡潔信息。正如一個盲目的猜測:案例2應該是最有效和快速的。案例2只是建立用戶名'ABC'的JOIN。 – Bruellhusten
如果我們想要讓整個數據與Joing條件相匹配,那麼哪一個會更有效? –
A和B甚至不會產生相同的結果,那麼您認爲更有效的是什麼? – oerkelens