ฉันจะแทรกค่าลงในตารางโดยใช้แบบสอบถามย่อยที่มีผลลัพธ์มากกว่าหนึ่งรายการได้อย่างไร


104

ฉันขอขอบคุณสำหรับความช่วยเหลือของคุณ

อาจเป็นปัญหาที่ค่อนข้างง่ายในการแก้ไข - แต่ฉันไม่ใช่คนที่ .. ;-)

ฉันมีสองตารางใน SQL Server:

  1. บทความ
  2. ราคา

ตอนนี้ฉันต้องการเลือกชุดของรหัสและแทรกบางรายการลงในตารางราคาด้วย ID เหล่านั้น

เช่น (SQL ผิดและไม่ทำงาน)

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

SQL Error -> เคียวรีย่อยมีมากกว่า 1 ค่า

ขอบคุณที่ช่วยเหลือ


6
ว้าว! คำตอบที่ถูกต้องมากมายในวันที่ 13 มี.ค. 55 เวลา 21:18 น. (คำใบ้: คุณสามารถวางเมาส์เหนือการประทับเวลาเพื่อรับวินาที)
Rohmer

คำตอบ:


158

คุณต้องการ:

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

โดยที่คุณเพียงแค่ฮาร์ดโค้ดฟิลด์ค่าคงที่


INSERT INTO iden_course(Cse_M_ID, Cse_M_Name, Cse_M_ShName, Cse_M_TotSem, Cse_M_CreatedDate) VALUES ( 'ID', 'BJf', 'BJfg', '4' ตอนนี้ ()) เลือก max (Cse_M_ID) เป็น ID จาก iden_course วิธีการเพิ่มในแบบสอบถามนี้
Sandeep



12

หากคุณกำลังแทรกหนึ่งระเบียนลงในตารางของคุณคุณสามารถทำได้

INSERT INTO yourTable 
VALUES(value1, value2)

แต่เนื่องจากคุณต้องการแทรกมากกว่าหนึ่งระเบียนคุณสามารถใช้SELECT FROMคำสั่ง SQL ของคุณได้

ดังนั้นคุณจะต้องทำสิ่งนี้:

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


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.