2013-02-22 12 views
5

यहां मेरा FIDDLE है।नई तालिका बनाने के दौरान अन्य तालिका से मूल्यों को सम्मिलित करना

मैं पुरानी तालिका से डेटा को नई तालिका में आयात करने की कोशिश कर रहा हूं। पुरानी मेज में पुनरावृत्ति के कई नहीं हैं। नई तालिका में मैं केवल DISTINCT ईमेल डालने में सक्षम हूं। मैं नाम को सम्मिलित करने में असमर्थ हूं। मेरा कोड यहाँ है।

CREATE TABLE table_old(name VARCHAR(255), email VARCHAR(255)); 

INSERT INTO table_old (name, email) VALUES ('tom', '[email protected]'), 
              ('peter', '[email protected]'), 
              ('hitler', '[email protected]'), 
              ('haasan', '[email protected]'), 
              ('arun', '[email protected]'), 
              ('tom', '[email protected]'), 
              ('peter', '[email protected]'), 
              ('hitler', '[email protected]'), 
              ('haasan', '[email protected]'), 
              ('arun', '[email protected]'); 

CREATE TABLE table_new AS (SELECT DISTINCT email FROM table_old); 

तो मेरे विचार कैसे ईमेल स्तंभ नाम के संबंध में table_new में डालने के लिए दें।

+0

बस नाम जोड़ सकता हूँ? 'तालिका तालिका_न्यू एएस बनाएं (चयन डिस्टिंट नाम, table_old से ईमेल); ' – Andomar

+0

मैं इसे अलग-अलग नामों के बावजूद प्रत्येक की केवल एक प्रति चाहने की व्याख्या करता हूं। – Joe

+0

हां जो। तुम सही हो। मुझे अनावश्यक सामग्री की केवल एक प्रति की आवश्यकता है। और मेरी समस्या को हल करने के लिए समय तेज है हालांकि आप सही हैं। –

उत्तर

1

मुझे लगता है कि यह आप क्या कर रहे हैं के बाद है:

CREATE TABLE table_new AS (SELECT name, email FROM table_old GROUP BY name, email); 
+0

सबसे पहले मैंने ऑटो इंक और प्राथमिक कुंजी के साथ user_id के साथ तालिका बनाई। बाद में मैं तालिका कमांड के साथ उपरोक्त क्वेरी को आजमा रहा हूं। मुझे त्रुटि मिल रही है। क्या मैं ऐसा नहीं कर सकता। –

1

इनमें से कुछ कैसे आप ऐसा नाम है जो रखा जाता है का चयन करना चाहते पर निर्भर करता है।

CREATE TABLE table_new AS (SELECT email, max(name) FROM table_old group by email); 

आप निर्धारण जो नाम चुना जाता है के लिए और अधिक जटिल नियम है, कि अलग ढंग से लागू किए जाने की आवश्यकता होगी: यह जितना आसान हो सकता है।

2

आप नीचे दी गई क्वेरी का उपयोग कर सकते हैं।

CREATE TABLE table_new AS (SELECT DISTINCT * FROM table_old);

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