1樓:阿冬
還要注意是在哪一種資料庫管理系統中,有些就不支援minus,不過not exists應該都支援。
2樓:一支紅纓槍
select name from test1 a
where not exists (select * from test2 b where b.name<>'admin' and b.name = a.name)
sql語句not in如何優化最好
3樓:
把*換成具體你想要的欄位,不需要的就別寫了,以免掃描全表檢視
如果**入庫單_主表比較大,那需要給此表建個索引,索引列就是單據型別
4樓:永遠左手
not exists 或者 minus
5樓:溉藥袉阜
使用not exists替換, 一般情況下not exists的效能比not in高出很多
sql 語句 in的優化。
6樓:匿名使用者
假設原來的句子是
select * from t1 where t1.f1 in (select t2.f2 from t2 where t2.f2=***)
和你的很類似
你用子查詢 很慢
我們現在修改為:
select t1.* from t1 ,t2 where t1.f1 = t2.f2 and t2.f2=***x
這裡使用了關聯查詢代替了子查詢大大提高效率。
其次你可以考慮在表t1.f1上加索引,提高查詢速度。
7樓:匿名使用者
嘗試在 in 的這個欄位上建索引
8樓:匿名使用者
這樣試下:
把id放到一張表中,
where id in(select id from 表)
9樓:guoke濤
select * from t1
join t2 on t1.f1=t2.f2
where t2.f2=***
SQL語句優化
select id from table where a 9 and b 7 or a 0 and b 1 and c 0 這個語句就一層沒有太大的優化 sql語句被解析的時候where條件是從後往前篩選的所以你可以根據篩選掉的資料量 把where條件位置變換一下無比將能篩選掉最多不符的資料放到最後...
SQL語句優化,哪位高手來幫幫忙
你的條件,datediff dd,table1.time,2012 12 03 0 and datepart mi,1 time 00 and left 1 time,18 left 2 time,18 你在字段都加了function 注定了只能全表掃瞄。考慮一下不加function怎麼處理吧。建立...
求一句SQL語句,求一句sql語句
巨蟹神運算元 不知道你用的什麼資料庫,oracle資料庫有pivot函式直接操作的,由於目前mysql使用的比較普遍,下面我貼個mysql的寫法吧。select 公司名稱,sum case 品類 when 廚衛 then 金額 else 0 end 廚衛,sum case 品類 when 黑電 th...