MySQL:像foreach一样INSERT INTO

时间:2013-08-01 09:46:05

标签: mysql select foreach 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
   );

gesdoc_docs有40行,users_profil_do有700行。 我需要为users_profil_do中的每一行andco_gesdoc_docs关联40行{所以通常我的查询将插入28,000行)。 可能吗 ?我怎么能用mysql查询呢?

感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

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

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