2012-05-14 91 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