MySQL:使用 foreach 插入类似

Tik*_*TaZ 4 mysql foreach select insert

我想做这样的查询:

INSERT INTO `gesdoc_docs_authorizations`
    (`gesdoc_docs_id`, `id_profil_do`, `autorisation`, `personal_doc`)
VALUES (
    (SELECT `id`
    FROM `gesdoc_docs`),
    (SELECT `id`
    FROM `users_profil_do`),
    1, 0
   );
Run Code Online (Sandbox Code Playgroud)

gesdoc_docs有 40 行,users_profil_do有 700 行。我需要将users_profil_do40 行中的每一行andco_gesdoc_docs关联起来(所以通常我的查询将插入 28,000 行)。是否可以 ?我怎样才能用 mysql 查询做到这一点?

感谢帮助 :)

Bar*_*mar 5

VALUES从 插入时不使用关键字SELECT

INSERT INTO gesdoc_docs_authorizations
    (`gesdoc_docs_id`, `id_profil_do`, `autorisation`, `personal_doc`)
SELECT g.id, d.id, 1, 0
FROM gesdoc_docs g
JOIN users_profil_do d
Run Code Online (Sandbox Code Playgroud)

如果不使用ON子句指定联接条件,它将把所有行视为匹配,这将导致两个表的完整笛卡尔积。