3

既存のドキュメントテーブルと新しい権限テーブルがあります。既存のすべてのドキュメントにすべてのアクセス許可を与えるスクリプトを作成したいと思います。document_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

これを試して:

CROSSJOINを使用する

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 に答える