2012-02-23 10 views
37

MySQL आप एक पंक्ति में एक पंक्ति में प्रवेश कैसे करते हैं जिसमें एकाधिक पंक्तियां लौटती हैं?MySQL आप एक पंक्ति में एक पंक्ति में प्रवेश कैसे करते हैं जिसमें एकाधिक पंक्तियां लौटती हैं?

INSERT INTO Results 
    (
    People, 
    names, 
    ) 
    VALUES 
    (
    (
     SELECT d.id 
     FROM Names f 
     JOIN People d ON d.id = f.id 
    ), 

    (
     "Henry" 
    ), 
    ); 

मैं चाहते हैं तो यह सबक्वेरी से लौटने के सभी परिणामों के साथ नई तालिका पॉप्युलेट करने के लिए । मैं एक त्रुटि 1242 (21000) हो रही बिना यह कर कैसे करते हैं: Subquery 1 से अधिक पंक्ति

+1

आप सभी वस्तुओं को डालने के लिए लूप का उपयोग करके प्रक्रिया के साथ इसका उपयोग कर सकते हैं। –

+0

मैं एक MySQL newb हूँ, परिणामस्वरूप आप कैसे पुन: प्रयास करते हैं? – stackoverflow

+0

http://dev.mysql.com/doc/refman/5.1/en/insert-select.html – Michas

उत्तर

88
INSERT INTO Results (People, names) 
    SELECT d.id, 'Henry' 
    FROM Names f 
    JOIN People d ON d.id = f.id 

अपने SELECT क्वेरी के साथ स्थिर स्ट्रिंग Henry कम्बाइन देता है।

+0

पोस्ट संपादित किया है यदि मेरे पास एकाधिक नाम हैं तो क्या होगा? न केवल 'हेनरी' और मुझे उन पर _iterate_ की आवश्यकता है। –

6
INSERT INTO Results 
    (
    People, 
    names, 
    ) 
    SELECT d.id, 'Henry' 
    FROM Names f 
    JOIN People d ON d.id = f.id 
+0

वह काम करता है http://decoding.wordpress.com/2008/10/11/sql-server-insert-into-with-subquery/ – stackoverflow

+0

मैंने – triclosan

8
INSERT INTO Results 
    (
    People, 
    names, 
    ) 
    VALUES 
    (
    (
     SELECT d.id 
     FROM Names f 
     JOIN People d ON (d.id = f.id) limit 1 
    ), 

    (
     "Henry" 
    ), 
    ); 
+8

स्टैक ओवरफ़्लो में आपका स्वागत है! कोड के ब्लॉक को पोस्ट करने के बजाय, कृपया * समझाएं * यह कोड समस्या को हल क्यों करता है। एक स्पष्टीकरण के बिना, यह एक जवाब नहीं है। –

+1

यह वास्तव में प्रश्न का उत्तर नहीं देता है। यह "[...] _ ** सभी परिणामों ** के साथ नई तालिका को दोहराएं ** इस subquery_ से लौट रहा है", और यह सबक्वायरी परिणामों को एक पंक्ति तक सीमित करता है। (मुझे पता है कि यह जवाब 4 साल से अधिक पुराना है लेकिन मुझे लगा कि मैं इसे किसी भी तरह से इंगित करूंगा।) – MJV

5

यहां मैंने जो पाया है वह अच्छी तरह से काम करता है। यह थोड़ा लंबा है लेकिन कई बार अतिरिक्त डेटा को चारों ओर घूमने की जरूरत है।

तालिका 2 से तालिकाओं में एकाधिक पंक्तियों को मानों के साथ डालें। उदाहरण:

INSERT INTO table1 (col1, col2, col3, col4, col5) 
SELECT col1,col2,col3,col4,col5 
FROM table2 t2 
WHERE t2.val2 IN (MULTIPLE VALUES) 
AND (Another Conditional); 

आप कठिन मूल्यों कोडित सम्मिलित कर सकते हैं दोहराने डेटा के साथ कई पंक्तियां सम्मिलित पाने के लिए:

INSERT INTO table1 (col1, col2, col3, col4, col5) 
SELECT "Value", col2, col3, "1900-01-01","9999-12-31" 
FROM table2 t2 
WHERE t2.val2 IN (MULTIPLE VALUES) 
AND (Another Conditional); 

ध्यान दें कि: "मूल्य", "1900/01/01", "9999- 12-31 "डाली गई सभी पंक्तियों में दोहराएगा।

-1

ec_element (पैरेंटिड, नाम) में डालें एलिमेंट, 'STARTUP' ec_element से चुनें जहां नाम = 'बीजी';

सम्मिलित कथन स्थिति पूर्ण और एक लेबल स्ट्रिंग के साथ मिली तालिका से मान तत्वों को लेता है।

संबंधित मुद्दे

 संबंधित मुद्दे