2012-06-12 24 views
10

Próbuję wstawić dodatkowe wiersze do tabeli, która wymaga pobrania wartości z innej tabeli. Poniżej znajduje się przykład zapytania:Jak używać 'select' w MySQL 'insert' statement

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

Struktura b.students tabeli jest rollno, ssn, name.

Wiedziałem, że powyższe zapytanie jest nieprawidłowe. Czy istnieje sposób na odzyskanie 1 wartości z innej tabeli podczas wstawiania wiersza?

+0

próbowałem go bez parantez dookoła instrukcji select. Teraz mam to przez dodanie(). – user1074122

Odpowiedz

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

Niektóre DBMS zaakceptuje następujące, z dodatkowym zestawem nawiasie wokół SELECT:

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

otrzymałem to od twojego drugiego zapytania. dzięki – user1074122

3

Kolumny wkładki do wybierz musi być równa

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