2014-02-11 140 views
0

我有3個表,USER,ROLEUSER_ROLE將數據插入到連接表中

USER_ROLEUSERROLE之間的連接表,看起來像這樣:

USER_ID | ROLE_ID 
1  | 1 
1  | 2 
2  | 1 
2  | 2 
... 

我想寫一些的SQL插入每一個角色一次爲每個用戶。我如何去做這件事?

回答

1

爲此,您可以用交叉聯接:

insert into user_role(user_id, role_id) 
    select u.user_id, r.role_id 
    from user u cross join role r; 
+0

感謝您的。也注意到它似乎作爲'...從用戶u,角色r'沒有'交叉連接'。它們是否相同? – rcgeorge23

+0

這是一個隱式的交叉連接。答案是明確的。 – Mihai

+0

@ rcgeorge23。 。 。 ','相當於一個'交叉連接'。但是,在我看來,'from'子句不應該包含逗號,所以'cross join'更好。 –