2013-08-15 3 views
0

Можно ли использовать подзапрос в инструкции INSERT?SQL-подзапрос в INSERT?

INSERT INTO table (age, p_id) 
VALUES('22', '(SELECT id FROM people WHERE name='Bob')') 

Есть ли рабочая форма того, что я пытаюсь?

Использование базы данных MySQL

+0

*** SQL *** - это только * Структурированный язык запросов * - язык, используемый многими системами баз данных, но не продукт базы данных ... многие вещи специфичны для поставщиков, поэтому нам действительно нужно знать, что ** система баз данных ** (и какая версия) вы используете (пожалуйста, обновите теги соответственно) .... –

+0

вы должны использовать select вместо – Malachi

+0

Использование MySQL спасибо –

ответ

1
INSERT INTO MyTable (age, p_id) 
SELECT '22', (select id from people where name = 'bob') 

или вы могли бы сделать это

INSERT INTO MyTable (age, p_id) 
SELECT '22', id 
FROM people 
WHERE name = 'bob' 
+3

В подзапросе нет необходимости. 'INSERT INTO MyTable (age, p_id) SELECT '22', id FROM people WHERE name = 'bob'' Литеральное значение' 22' может просто перейти в список выбора. –

+0

@MichaelBerkowski Я согласен – Malachi

+0

Я знаю, что не было необходимости в подзапросе, я пытался использовать ту же структуру, что и в вопросе лиц, чтобы облегчить им следовать. –

0

должно быть что-то вроде

INSERT INTO table (age, p_id) 
SELECT '22', people.id 
FROM people 
WHERE people.name = 'bob 
0
INSERT INTO table (age, p_id) 
SELECT '22', (SELECT id FROM people WHERE name='Bob')) 

или лучше ...

INSERT INTO table (age, p_id) 
SELECT '22',id FROM people WHERE name='Bob'