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

时间:2016-05-03 21:58:49

标签: 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 Query的结果来填充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选择查询ONCE ......这是否可以严格使用MySQL?

1 个答案:

答案 0 :(得分:0)

我找到了问题的答案!

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");