मैं एक तालिका में मूल्यों को कैसे सम्मिलित कर सकता हूं, एक से अधिक परिणामों के साथ एक उपश्रेणी का उपयोग कर?


96

मैं वास्तव में आपकी मदद की सराहना करूंगा।

संभवतः यह हल करने के लिए एक बहुत ही सरल समस्या है - लेकिन मैं एक नहीं हूँ .. ;-)

SQL सर्वर में मेरे दो टेबल हैं:

  1. लेख
  2. कीमतों

अब मैं आईडी के एक निश्चित सेट का चयन करना चाहता हूं और उन आईडी के साथ मूल्य-तालिका में कुछ प्रविष्टियां सम्मिलित करता हूं।

उदाहरण के लिए (गलत और काम नहीं SQL)

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

एसक्यूएल त्रुटि -> सबक्वेरी में 1 से अधिक मूल्य है

सहायता के लिए धन्यवाद


5
वाह! बहुत सारे सही जवाब 13 मार्च 12 को 21:18 पर (संकेत: आप सेकंड प्राप्त करने के लिए टाइमस्टैम्प पर मंडरा सकते हैं)
रोहमर

जवाबों:


148

तुम्हें चाहिए:

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) मूल्यों ( 'आईडी', 'BJF', 'BJfg', '4', अब ()) का चयन अधिकतम (Cse_M_ID) iden_course कैसे इस क्वेरी में जोड़ने के लिए से आईडी के रूप में
संदीप


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

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%'

3

उप क्वेरी की तरह दिखता है

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

उममीद है कि इससे मदद मिलेगी


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.