Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将数据插入联接表_Mysql_Sql - Fatal编程技术网

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
子句不应该包含逗号,因此
交叉连接
更好。