2010-04-14 19 views
5

Có thể làm một cái gì đó như thế này:Điều này có khả thi với sql không?

INSERT INTO table(col1, col2) VALUES(something_from_another_table, value); 

Với something_from_another_table trở thành một lệnh SQL? Giống như, có gì đó tôi có thể làm điều đó là để equivelant:

INSERT INTO table(col1, col2) VALUES((SELECT value FROM table2 WHERE id = 3), value); 

Trả lời

18

INSERT INTO table(col1, col2) 
SELECT value1, 'value2' FROM table2 WHERE id = 3 

đâu value1 là giá trị từ 'bảng khác và value2 là một hằng số mà bạn đã bao gồm trong đó tuyên bố chọn.

5

Hãy thử điều này:

INSERT INTO table(col1, col2) 
SELECT table2.value1, value2 FROM table2 WHERE table2.id = 3; 
0

Bạn chắc chắn có thể. Nó sẽ hoạt động tương tự như ví dụ dưới đây;

INSERT INTO Store_Information (store_name, Sales, Date) 
(SELECT store_name, Sales, Date FROM Sales_Information WHERE Year(Date) = 2010) 
0

khi bạn chỉ định từ khóa "Giá trị" trên câu lệnh chèn bạn đang cố chèn giá trị. cách hiện để làm điều đó được gán giá trị của "something_from_another_table" vào một biến và sau đó, hãy chèn của bạn

DECLARE @ANYVALUE AS VARCHAR(40) 
SELECT @ANYVALUE = ANYFIELD FROM table2 WHERE id = 3 
INSERT INTO table1 (FIELD1, FIELD2) VALUES(@ANYVALUE, VALUE2) 

Trên đường này sẽ luôn chèn một bản ghi. cách chính xác khác sẽ chèn n bản ghi như là tuyên bố nơi có thể lọc.

INSERT INTO Store_Information (store_name, Sales, Date) 
(SELECT store_name, Sales, Date FROM Sales_Information WHERE Year(Date) = 2010) 
Các vấn đề liên quan