2012-07-27 90 views
-1

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

从类别

选择id其中像“关于我们”

想这回CAT_ID = 2

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

第二个查询是lik E:

INSERT到sub_cat VALUES(NULL,,历史)INTO(subCat_id,CAT_ID, '名')

所以,我怎么可以使用1 SQL查询返回的值进入我的第二个查询

+0

您使用的框架或SQL导航.....? – cshemby 2012-07-27 19:35:11

回答

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' 
2

可以直接使用UB-查询您的INSERT查询:

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

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

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

这会在您的子查询返回多行时发生错误。 INSERT INTO SELECT将允许OP执行多次插入 – 2012-07-27 19:35:29

+0

@StefanH如果考虑到不能有多个具有相同名称的类别的想法,则不应该这样做。此外,涉及的逻辑 - 将子类别添加到现有的类别 - 将相同的子类别添加到多个父类别是没有意义的;那么,您将拥有多个具有相同名称的父类别,并且所有类别都具有相同名称的子类别。 – newfurniturey 2012-07-27 19:39:51

+0

thnks很多队友... – user1558524 2012-07-27 20:03:01

相关问题