3

我想做这样的查询:

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_do40 行andco_gesdoc_docs(所以通常我的查询会插入 28,000 行)。是否可以 ?我怎么能用 mysql 查询来做到这一点?

感谢帮助 :)

4

1 回答 1

4

VALUESSELECT. _

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子句来指定连接条件,它会将所有行视为匹配,这会导致两个表的完整笛卡尔积。

于 2013-08-01T09:53:18.813 回答