Làm cách nào để tôi có thể chèn các giá trị vào một bảng, bằng cách sử dụng một truy vấn con có nhiều hơn một kết quả?


96

Tôi thực sự sẽ đánh giá cao sự giúp đỡ của bạn.

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

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

  1. bài báo
  2. giá cả

Bây giờ tôi muốn chọn một tập hợp 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ụ: (SQL sai và không hoạt động)

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

Lỗi SQL -> truy vấn con có nhiều hơn 1 giá trị

cảm ơn vì sự giúp đỡ


5
Chà! Có rất nhiều câu trả lời đúng tất cả vào ngày 13 tháng 3 '12' lúc 21:18 (gợi ý: bạn có thể di chuột qua dấu thời gian để lấy giây)
Rohmer

Câu trả lời:


148

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ỉ cần mã hóa các trường không đổi.


INSERT INTO iden_course(Cse_M_ID, Cse_M_Name, Cse_M_ShName, Cse_M_TotSem, Cse_M_CreatedDate) VALUES ( 'ID', 'BJf', 'BJfg', '4', Now ()) chọn max (Cse_M_ID) như ID từ iden_course cách thêm trong truy vấn này
SANDEEP

23

Thử cái này:

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

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

12

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

INSERT INTO yourTable 
VALUES(value1, value2)

Nhưng vì bạn muốn chèn nhiều bản ghi, bạn có thể sử dụng một SELECT FROMtrong câu lệnh SQL của mình.

vì vậy 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%'

3

truy vấn phụ trông như thế nào

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

hy vọng điều này giúp đỡ


1
INSERT INTO prices(group, id, price)
SELECT 7, articleId, 1.50
FROM article where name like 'ABC%';
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.