我有2个查询,我想在第二个查询中使用第一个查询的结果

时间:2012-07-27 19:28:41

标签: mysql sql

我有2个查询,我想在第二个查询中使用第一个查询的结果。 第一个查询如下:

  

从类别中选择ID,例如“关于我们”

假设此返回 Cat_id = 2

现在在我的第二个查询中,我需要使用第一个查询的结果 EG:我需要使用id(在查询1中返回)输入关于我们的子类别

第二个查询就像:

  

INSERT到sub_cat VALUES(NULL, 2 ,历史记录)INTO(subCat_id,Cat_id,   '姓名')

那么如何将第一个SQL查询中返回的值用于我的第二个查询

2 个答案:

答案 0 :(得分:2)

您可以在INSERT查询中使用子查询:

INSERT INTO sub_cat (subCat_id, Cat_id, `name`)
VALUES (NULL, (SELECT id FROM category WHERE name = 'About Us'), 'History');

这假设您没有多个具有相同名称的类别。如果您的表 具有相同名称的类别,您可以在子查询中添加LIMIT 1,或使用像他在他的提到的Stefan H.中的INSERT INTO .. SELECT语句回答:

INSERT INTO sub_cat (subCat_id, Cat_id, `name`) (
    SELECT NULL, id, 'History' FROM category WHERE name = 'About Us'
)

答案 1 :(得分:0)

INSERT INTO SELECT是您想要的查询

INSERT into 
    sub_cat 
SELECT 
    NULL AS subCat_id,
    Cat_id,
    'name' as History
FROM
    Category
Where 
    YourColumn like 'About Us'