mysql - 如何运行一次 MySQL SELECT 查询并在大型插入查询中使用它?

标签 mysql

我有一个表,一次可以输入大约 10,000-20,000 个条目。该表应该通过 ID 引用另一个表,但我还不知道该 ID 是什么,我需要使用 MySQL 查询找到它,并提供一些我知道的有关父表的信息...

这是表格的示例...

ParentTable
 - id - int, primary key, auto incriment
 - name - varchar
 - type - varchar

ChildTable
 - id - int, primary key, auto incriment
 - parent_table_id - int
 - name - varchar

我需要一种方法来运行这样的 MySQL 查询...

SELECT id FROM ParentTable WHERE name='SomeName' AND type='SomeType';

然后使用该 MySQL 查询的结果来填充 ChildTable,如下所示...

INSERT INTO ChildTable (parent_table_id, name) VALUES
    (previous_result, "SomeName1"),
    (previous_result, "SomeName2"),
    (previous_result, "SomeName3"),
    (previous_result, "SomeName4000"),
    (previous_result, "SomeName10000"),
    (previous_result, "SomeName20000");

问题是我只想运行一次 ParentTable 选择查询...这可以严格使用 MySQL 吗?

最佳答案

我找到了问题的答案!

SELECT id INTO @parent_id FROM ParentTable WHERE name='SomeName' AND type='SomeType';

INSERT INTO ChildTable (parent_table_id, name)
    VALUES
        (@parent_id, "New"),
        (@parent_id, "New1"),
        (@parent_id, "New2"),
        (@parent_id, "New3"),
        (@parent_id, "New4"),
        (@parent_id, "New5"),
        (@parent_id, "New6");

关于mysql - 如何运行一次 MySQL SELECT 查询并在大型插入查询中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37015097/

相关文章:

php - Laravel belongsTo - 指定字段

php - MySQL 在整数零问题上签署了 Order By

mysql日期比较只比较年份

mysql - AWS Datapipeline - 重音字符问题

mysql查询统计id

php - 一个表单可以执行两次吗?

php - mysql - 更新、插入或删除行值列表

php - MySQL curdate() 和 now() 与 PHP date()

php - 如何在没有额外提供商的情况下通过 channel 管理器同步 MySQL 数据库(或我的网站预订)?

C# MySQL - "Update"正在选择每一行/所有内容