我有一个现有的文档表和一个新的权限表。我想创建一个脚本,该脚本将授予对所有现有文档的所有权限。 documents_permissions 表将需要 document_id 和 permission_id (1,2,3)。因此,对于每个文档,我需要插入 3 行。这是我在 atm 的地方:
INSERT INTO `documents_permissions` (`document_id`, `permission_id`)
SELECT `id`, '1' FROM `documents`
但我需要为每个权限重复一遍。执行此操作的最佳方法是什么?
最佳答案
试试这个:
使用交叉连接
INSERT INTO `documents_permissions` (`document_id`, `permission_id`)
select `id`,a.permissions
from(
select 1 as permissions union all
select 2 union all
select 3 )a
cross join
`documents` d
关于mysql - 带有子选择和多行的 SQL 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12971346/