Mysql 将数据插入联接表
我有三个表,Mysql 将数据插入联接表,mysql,sql,Mysql,Sql,我有三个表,USER、ROLE和USER\u ROLE USER\u 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_
USER
、ROLE
和USER\u ROLE
USER\u 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。,
相当于交叉连接
。但是,在我看来,from
子句不应该包含逗号,因此交叉连接
更好。