2012-05-14 47 views
0

我有一个查询会返回一些ID。从子查询中插入多个

SELECT ID FROM xf_menu WHERE m.modul_id = 13; 

然后有一个简单的插入查询

INSERT INTO xp_uziv_menu (menu_id, modul_id, right) VALUES (???, 136, 3); 

值136和3是常数。

我想知道是否可以写一个查询,其中ID将从第一个查询传递到插入查询并执行。

我试过这个语法,但它不起作用。

INSERT INTO 
    xp_uziv_menu (menu_id, modul_id, right) 
VALUES 
    (SELECT ID FROM xf_menu WHERE m.modul_id = 13, 136, 3); 

回答

4

也许是这样的:

INSERT INTO xp_uziv_menu (menu_id, modul_id, right) 
SELECT 
    ID, 
    136, 
    3 
FROM xf_menu WHERE m.modul_id = 13; 
+0

我认为136和3是modul_id和right,而不是其他ID的 –

+0

aaa。你是对的。更新了答案。谢谢指出, – Arion

+0

谢谢!这是我正在寻找的语法 – ssb

2

试试这样说:

INSERT INTO xp_uziv_menu (menu_id, modul_id, right) 
SELECT ID, 136, 3 FROM xf_menu WHERE m.modul_id = 13; 
+0

@a_horse_with_no_name我们可以把右边的列? –

0

尝试: -

INSERT INTO xp_uziv_menu 
SELECT ID, modul_id, 3 Where id = 13