2012-03-13 32 views
51

Tôi thực sự sẽ đánh giá cao sự giúp đỡ của bạn.Làm cách nào để chèn các giá trị vào một bảng, sử dụng truy vấn phụ có nhiều kết quả?

Có lẽ đó là một vấn đề khá đơn giản để giải quyết - nhưng tôi không phải là một trong những .. ;-)

Tôi có hai bảng trong SQL Server:

  1. bài viết
  2. giá

Bây giờ tôi muốn chọn một bộ id nhất định và chèn một số mục nhập vào bảng giá với những ID đó.

ví dụ: (Sai và không làm việc SQL)

INSERT INTO prices (group, id, price) 
VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50); 

SQL Lỗi -> subquery có hơn 1 giá trị

nhờ sự giúp đỡ

+1

Wow! Vì vậy, nhiều câu trả lời chính xác tất cả vào ngày 13 tháng 3 '12 tại 21:18 (gợi ý: bạn có thể di chuột qua dấu thời gian để có được giây) – Rohmer

Trả lời

82

Bạn muốn:

insert into prices (group, id, price) 
select 
    7, articleId, 1.50 
from article where name like 'ABC%'; 

nơi bạn chỉ hardcode các trường liên tục.

+0

INSERT INTO 'iden_course' (Cse_M_ID,' Cse_M_Name', 'Cse_M_ShName',' Cse_M_TotSem', Cse_M_CreatedDate) GIÁ TRỊ ('ID', 'BJf', 'BJfg', '4', Bây giờ()) chọn tối đa (Cse_M_ID) làm ID từ iden_course cách thêm vào truy vấn này – SANDEEP

10

Nếu bạn đang chèn một bản ghi vào bảng, bạn có thể làm

INSERT INTO yourTable 
VALUES(value1, value2) 

Nhưng kể từ khi bạn muốn chèn nhiều hơn một hồ sơ, bạn có thể sử dụng một SELECT FROM trong câu lệnh SQL của bạn.

do đó bạn sẽ muốn làm điều này:

INSERT INTO prices (group, id, price) 
SELECT 7, articleId, 1.50 
from article 
WHERE name LIKE 'ABC%' 
11
INSERT INTO prices (group, id, price) 
    SELECT 7, articleId, 1.50 FROM article WHERE name LIKE 'ABC%' 
0

truy vấn phụ trông giống như

insert into table_name (col1,col2,....) values (select col1,col2,... FROM table_2 ...) 

niềm hy vọng này giúp

16

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

INSERT INTO prices (
    group, 
    id, 
    price 
) 
SELECT 
    7, 
    articleId, 
    1.50 
FROM 
    article 
WHERE 
    name LIKE 'ABC%'; 
2
INSERT INTO prices(group, id, price) 
SELECT 7, articleId, 1.50 
FROM article where name like 'ABC%'; 
Các vấn đề liên quan