2012-06-23 14 views
19

MySQL में, मैं FIEL1 से TABLE2 तक सभी रिकॉर्ड्स के साथ एक FIELD कैसे कॉपी करूं जो प्राथमिक कुंजी से संबंधित है यानी: एम्प्लोई नं।MYSQL, चयनित फ़ील्ड को एक टेबल से दूसरे में कॉपी करें

+0

टेबल में फ़ील्ड क्या हैं? अब तक तुमने क्या प्रयास किये हैं? –

+0

क्या आप एक विवरण में चयन करने की कोशिश कर रहे हैं? –

+0

नमूना डेटा कृपया ... –

उत्तर

33

प्रयास करें इस

INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1` 
+2

यह तालिका 1 से तालिका 2 में सभी डेटा डालेगा। –

+5

यह देखते हुए कि यह स्वीकार्य उत्तर है, मुझे लगता है कि ओपी ने गलत सवाल पोस्ट किया है। – swasheck

39

यदि आप मतलब है कि आप अद्यतन एक तालिका की स्तंभ एक और टेबल के स्तंभ का उपयोग करना चाहते हैं, तो यहाँ कुछ विकल्प हैं:

  1. एक में शामिल होने:

    UPDATE table1 AS t1 
        INNER JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo 
    SET t1.SomeColumn = t2.SomeColumn 
    

    वैकल्पिक रूप से यह एक बाएं शामिल हो सकता है:

    UPDATE table1 AS t1 
        LEFT JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo 
    SET t1.SomeColumn = t2.SomeColumn 
    

    जो अनिवार्य रूप से रिक्त (एनयूएलएल पर सेट) होगा, जहां कोई मिलान नहीं हुआ था।

  2. एक सबक्वेरी:

    UPDATE table1 
    SET SomeColumn = (
        SELECT SomeColumn 
        FROM table2 
        WHERE EmployeeNo = table1.EmployeeNo 
    ) 
    

    यह बाईं ओर बराबर है # 1 में समाधान में शामिल हो।

ध्यान दें कि सभी मामलों में यह माना जाता है कि table1 में एक पंक्ति table2 में एक पंक्ति से अधिक नहीं मिलान कर सकते हैं।

+0

धन्यवाद मैं इसे आजमाउंगा। – ix3

+0

दूसरी सबक्वायरी के बारे में मुझे यह त्रुटि दिखाई देती है: 'आप खंड से अद्यतन के लिए लक्ष्य तालिका' तालिका 2 'निर्दिष्ट नहीं कर सकते हैं, क्या आप जानते हैं कि इसका क्या कारण हो सकता है? Thx –

+0

@SSHThis: नहीं, आप शायद नहीं कर सकते। और मैंने नहीं किया। और [देखो, यह बिना किसी समस्या के काम करता है] (http://sqlfiddle.com/#!2/f5423/1)। –

17

एक मेज से दूसरे में प्रतिलिपि डेटा के लिए क्वेरी है:

Insert into table2 (field1, field2) select field1, field2 from table1 


आप केवल चयनित मूल्यों की प्रतिलिपि बनाना चाहते हैं, तो का उपयोग जहां क्वेरी

Insert into table2 (field1, field2) select field1, field2 from table1 where field1=condition 


में खंड

+0

एक समय में एक से अधिक स्थानांतरित करने के तरीके के लिए धन्यवाद :) – JoshP

3
update 
    table1 t1 
    join table2 t2 on t2.field = t1.field 
set 
    t1.field1 = t2.matchingfield 
where 
    t1.whatever = t2.whatever 
+0

यह सिर्फ मेरे 1 सप्ताह के सिरदर्द को हल करता है। धन्यवाद दोस्त – bademba

+0

हाँ wierd, हर कोई कुछ अलग कहता है .. यह – brigitte18

0

आप इस स्थिति का उपयोग table1 से table2 पर सभी शर्तों की प्रतिलिपि बनाने के लिए कर सकते हैं।

Insert into table2 select * from table1 where field1=condition 
-3

INSERT INTO table_1 (column-1, column-2) का चयन करें स्तंभ -1, स्तंभ-2 table_2 से;

+1

काम करता है इस सवाल को पहले से ही बहुत सारे जवाब प्राप्त हुए हैं। कृपया अपने उत्तरों की तुलना अन्य उत्तरों के साथ करें और यह देखने का प्रयास करें कि आपका कुछ ** ** ** प्रदान करता है या नहीं। यदि ऐसा है, तो कृपया बताएं क्यों, क्योंकि यह मेरे लिए स्पष्ट नहीं है –

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