2013-03-09 10 views
20

मुझे 3 टेबल से अलग मान प्राप्त करने की आवश्यकता है।एकाधिक तालिकाओं से अलग मूल्य का चयन कैसे करें

मुझे इस कोड निष्पादित करें:

select DISTINCT(city) from a,b,c 

मैं एक त्रुटि जो कहता है कि मेरे कॉलम 'शहर' अस्पष्ट है मिलता है। इस कोड को मैं अपने टेबल से कुछ भी नहीं प्राप्त के साथ

select DISTINCT(city) from a NATURAL JOIN b NATURAL JOIN c 

:

इसके अलावा, मैं इस कोशिश की है।

मुझे मैं क्या कर कोशिश कर रहा हूँ के उदाहरण पर आपको दिखाने दें:

TABLE A    TABLE B    TABLE C 
id | city   id | city   id | city 
1 | Krakow   1 | Paris   1 | Paris 
2 | Paris   2 | London   2 | Krakow 
3 | Paris   3 | Oslo 
4 | Rome 

और मैं इस

RESULTS 
city 
---- 
Krakow 
Paris 
Rome 
London 
Oslo 

शहरों के आदेश की तरह परिणाम प्राप्त करने की आवश्यकता मेरे लिए महत्वपूर्ण नहीं है मुझे बस उन सभी को रखने की जरूरत है, और प्रत्येक शहर का केवल एक ही प्रतिनिधित्व होना चाहिए।

कोई विचार? मैं id'sJOIN में उपयोग करने के बारे में सोच रहा था लेकिन कनेक्ट नहीं हैं इसलिए मैं इसका उपयोग नहीं कर सकता।

उत्तर

40

UNION कीवर्ड परिणाम सूची पर unique रिकॉर्ड वापस करेगा। ALL (यूनियन सभी) निर्दिष्ट करते समय परिणाम सेट पर डुप्लीकेट रखेंगे, जो ओपी नहीं चाहता है।

SELECT city FROM tableA 
UNION 
SELECT city FROM tableB 
UNION 
SELECT city FROM tableC 

परिणाम

╔════════╗ 
║ CITY ║ 
╠════════╣ 
║ Krakow ║ 
║ Paris ║ 
║ Rome ║ 
║ London ║ 
║ Oslo ║ 
╚════════╝ 
+0

वास्तव में मैं क्या जरूरत है। यह यूनियन DISTINCT की तरह है? क्या आप इसे थोड़ा सा समझा सकते हैं? –

+0

लोगों ने आपको वोट क्यों दिए? यह सही उत्तर है –

+0

मुझे नहीं पता कि यह जवाब क्यों कम किया गया है। हेहे जहां तक ​​मुझे पता है, मैं सवाल समझ गया। ':) 'चलो डाउनवॉटर के दृष्टिकोण से सुनें। –

3
SELECT city FROM A 
UNION DISTINCT 
SELECT city FROM B 
UNION DISTINCT 
SELECT city FROM C 
+2

यह भी सही उत्तर देता है लेकिन आपको 'यूनियन' के साथ 'DISTINCT' कीवर्ड' जोड़ने की आवश्यकता क्यों होती है जब तक कि 'ALL'' निर्दिष्ट? [एसक्यूएल फिल्ड डेमो] (http://www.sqlfiddle.com/#!2/442ef/7) –

+1

आप बिल्कुल सही हैं। "यूनियन" "यूनियन डिस्टिंट" के लिए डिफ़ॉल्ट है ("यूनियन ऑल" के बजाए) –

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