0
我有3個表,USER
,ROLE
和USER_ROLE
。將數據插入到連接表中
USER_ROLE
是USER
和ROLE
之間的連接表,看起來像這樣:
USER_ID | ROLE_ID
1 | 1
1 | 2
2 | 1
2 | 2
...
我想寫一些的SQL插入每一個角色一次爲每個用戶。我如何去做這件事?
我有3個表,USER
,ROLE
和USER_ROLE
。將數據插入到連接表中
USER_ROLE
是USER
和ROLE
之間的連接表,看起來像這樣:
USER_ID | ROLE_ID
1 | 1
1 | 2
2 | 1
2 | 2
...
我想寫一些的SQL插入每一個角色一次爲每個用戶。我如何去做這件事?
爲此,您可以用交叉聯接:
insert into user_role(user_id, role_id)
select u.user_id, r.role_id
from user u cross join role r;
感謝您的。也注意到它似乎作爲'...從用戶u,角色r'沒有'交叉連接'。它們是否相同? – rcgeorge23
這是一個隱式的交叉連接。答案是明確的。 – Mihai
@ rcgeorge23。 。 。 ','相當於一個'交叉連接'。但是,在我看來,'from'子句不應該包含逗號,所以'cross join'更好。 –