2012-06-12 3 views
10

Я пытаюсь вставить дополнительные строки в таблицу, которая требует, чтобы значение извлекалось из другой таблицы. Ниже приведен пример запроса:Как использовать 'select' в MySQL 'insert' statement

insert into a.grades (rollno, grade) 
values(select rollno from b.students where ssn=12345, 'A'); 

Структура b.students таблицы rollno, ssn, name.

Я знал, что вышеуказанный запрос неверен. Есть ли способ получить 1 значение из другой таблицы при вставке строки?

+0

я попробовал без paranthesis вокруг select statement. Теперь я получил его, добавив(). – user1074122

ответ

30
INSERT INTO a.grades (rollno, grade) 
    SELECT rollno, 'A' FROM b.students WHERE ssn = 12345; 

Некоторые СУБД будет принимать следующий, с дополнительным набором круглых скобок вокруг ЗЕЬЕСТ:

INSERT INTO a.grades (rollno, grade) 
    VALUES((SELECT rollno FROM b.students WHERE ssn = 12345), 'A'); 
+1

получил это от вашего второго запроса. благодаря – user1074122

3

Столбцы вставки в и выбрать, должен быть равен

insert into grades (field1, field2) 
select field1,field2 from students where ssn=12345;