2012-06-12 42 views
10

Tôi đang cố chèn các hàng bổ sung vào một bảng yêu cầu giá trị cần lấy từ một bảng khác. Bên dưới là một truy vấn mẫu:Cách sử dụng 'chọn' trong câu lệnh 'chèn' của MySQL

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

Cấu trúc của b.students bảng là rollno, ssn, name.

Tôi biết truy vấn trên là sai. Có cách nào để lấy 1 giá trị từ bảng khác trong khi chèn một hàng?

+0

tôi đã cố gắng nó không có dấu ngoặc đơn xung quanh câu lệnh chọn. Bây giờ tôi đã nhận nó bằng cách thêm(). – user1074122

Trả lời

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

Một số DBMS sẽ chấp nhận những điều sau đây, với thêm một bộ ngoặc xung quanh câu lệnh SELECT:

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

đã nhận được từ truy vấn thứ hai của bạn. cảm ơn – user1074122

3

Cột trong chèn vào và chọn phải bằng

insert into grades (field1, field2) 
select field1,field2 from students where ssn=12345; 
Các vấn đề liên quan