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'更好。 –