我們有一個group
和user permission
表如下:刪除 「NOT IN」 子句和優化查詢
Group (group_id,name)
01 | G1
02 | G2
03 | G3
04 | G4
UserPermission (userid,group_id,active)
User1 | 01 | 1
User1 | 02 | 1
User2 | 01 | 1
User2 | 02 | 1
User2 | 03 | 1
User2 | 04 | 1
..
UserN | xx | 1
每個用戶有權一個組。
但是,UserPermission表中缺少一些用戶的某些權限。
問題是爲UserPermission
表中存在的所有用戶插入缺少的組權限條目。
於是我想出了一個查詢 (原油)
insert into UserPermission
select distinct userid, '03', 1 from UserPermission
where userid not in (
select userid from UserPermission where group_id = '03'
)
這對於插入的權限缺少用戶提供Group 03
..
其他組相似。
有沒有更好的方法來編寫上述查詢。如何優化?
你在這裏說多少條記錄?你是否注意到性能問題,或者你只是問一般? – taylonr
一般..但約有30個組和約7K-8K的用戶。 – Amitd