SQLite

2010-01-04 13 views
5

में दो तालिकाओं कम्बाइन मैं दो टेबल, टा और टीबी हैSQLite

key col1 
-------- 
k1 a 
k2 c 

टीबी:

key col2 
------- 
k2 cc 
k3 ee 

वे "कुंजी" से जुड़े हुए। मुझे पता है कि मैं कैसे की तरह एक मेज, टीसी प्राप्त कर सकते हैं, चाहते हैं:

key col1 col2 
------------- 
k1 a 
k2 c cc 
k3 ee 

वहाँ एक आसान तरीका बजाय हर रिकॉर्ड को सम्मिलित की है? वे टेबल के दस लाख रिकॉर्ड हैं इसलिए मुझे एक प्रभावी तरीका चाहिए।

उत्तर

4

दो टेबलों में से VIEW बनाएं। SELECT ... JOIN कथन लिखें जो आपको इच्छित परिणाम देता है, और उसके बाद इसे दृश्य के आधार के रूप में उपयोग करें।

उदाहरण:

CREATE VIEW 
    database.viewname 
AS 
    SELECT 
    ta.key, 
    ta.col1, 
    tb.col2 
    FROM 
    ta 
    LEFT JOIN 
    tb 
    USING(key) 
+2

यह वांछित तालिका में तीसरी प्रविष्टि को याद करेगा। इसे एक पूर्ण बाहरी जॉइन –

+0

जेफ होने की आवश्यकता होगी, आप सही हैं। मैंने उदाहरणों को ध्यान से नहीं पढ़ा। हालांकि विधि एक ही है। –

+0

हां मैं सहमत हूं। –

0

आप क्या देख रहे हैं आप एक पूर्ण बाहरी करने की आवश्यकता होगी के लिए के लिए सुनिश्चित करें कि आप किसी भी कुंजी छूट न बनाने के लिए शामिल हों। एक बार जब आप काम कर रहे हों तो आप इसका इस्तेमाल कर सकते हैं या एक दृश्य बना सकते हैं।

अगर पूर्ण आउटर जॉइन लागू नहीं किया जाता है तो आपको डीबी की सीमाओं के आसपास काम करने की आवश्यकता हो सकती है, आप आमतौर पर यूनियन को बाएं और दाएं बाहरी में अपना पूरा करने के लिए शामिल हो सकते हैं।

+0

यह उस दृश्य भाग का निर्माण है जिसे मैं समझ नहीं सकता। मैं दो बाएं जॉइन और यूनियन का उपयोग करके पूरी तरह से बाहरी जुड़ने में सक्षम हूं। रास्ते में स्क्लाइट में कोई भी सही बाहरी जॉइन नहीं है :) एक बार जब मैं क्वेरी का परिणाम प्राप्त करता हूं तो मैं प्रश्न में दो कॉलम कैसे विलय कर सकता हूं? – Sohaib

1

यदि आप मूल तालिका में परिवर्तनों को प्रतिबिंबित करने के लिए डेटा की तलाश में हैं तो दृश्य का उपयोग करना सही तरीका है। लेकिन

CREATE TABLE tc(key,col1,col2) 

INSERT INTO tc (key,col1,col2) 
SELECT ta.key, ta.col1, tb.col2 
FROM ta FULL OUTER JOIN tb USING(key) 

कि वर्ष तालिका से डेटा के साथ नई तालिका से स्थापित हो जाएगा, वे:

आप डेटा एक नई तालिका में कॉपी करने के लिए वास्तव में करना चाहते हैं, आप की तरह कुछ करने की आवश्यकता होगी स्वतंत्र रूप से अलग-अलग हो पाएंगे।

+3

मेरा मानना ​​है कि स्क्लाइट (प्रश्न में) पूर्ण बाहरी जॉइन नहीं करता है। – XTL