1
假設我們有兩個表與查詢性能並沒有加入
客戶和訂單
客戶表: -
custid custname
------- ---------
1 aaa
2 bbb
3 ccc
訂單表: -
orderid custid date
-------- ------ -----
101 1 2016-03-01
102 1 2016-03-03
103 2 2016-03-01
現在,我們有誰已經下任何訂單
顯示客戶我們能夠做到幾個方面: -
1.Without加入
Select custid
from Customers
where custid not in
(Select custid from Orders)
和
2.具有加入
Select C.custid
from Customers C left join Orders O
on C.custid = O.custid
where O.orderid is null
我被問到是否會有任何性能差異?如果哪個更好,爲什麼?
'2.刪除第二個查詢中的where子句給出錯誤結果 –
它們在OP變體中給出了相同的結果。 2排。沒有WHERE子句,它給832行 –