3

我有一个现有的文档表和一个新的权限表。我想创建一个脚本,它将授予所有现有文档的所有权限。documents_permissions 表需要 document_id 和 permission_id (1,2,3)。因此,对于每个文档,我需要插入 3 行。这是我在atm的地方:

INSERT INTO `documents_permissions` (`document_id`, `permission_id`)
SELECT `id`, '1' FROM `documents`

但我需要为每个权限重复一遍。做这个的最好方式是什么?

4

2 回答 2

4

尝试这个:

使用交叉连接

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
于 2012-10-19T09:39:04.933 回答
1
INSERT INTO `documents_permissions` (`document_id`, `permission_id`)
select id, pid from `documents`
cross join (select 1 as pid union select 2 union select 3)X
于 2012-10-19T09:39:33.677 回答