2013-02-18 37 views
5

मैं हाइव 0.9.0 का उपयोग कर रहा है और मैं यानीहाइव कई सबक्वेरी

`SELECT a.id, b.user FROM (SELECT...FROM a_table) a, (SELECT...FROM b_table) b WHERE a.date = b.date;` 

क्वेरी निष्पादित करने के लिए कोशिश कर रहा हूँ, लेकिन यह रिटर्न त्रुटि "पाश (...) + इनपुट से मेल नहीं खाता .... "। क्या हाइव ओरेकल डीबी की तरह से कई उपक्विरी का समर्थन करता है?

उत्तर

6

एकाधिक subqueries हाइव में अनुमति दी गई।

मैंने नीचे कोड के साथ परीक्षण किया, यह काम करता है।

select * from (select id from test where id>10) a 
join (select id from test where id>20) b on a.id=b.id; 

कृपया अपना सटीक कोड पोस्ट करें ताकि मैं प्रासंगिक समाधान दे सकूं।

+0

धन्यवाद, बालास्वामी! मैंने जॉइन के साथ पहले से ही आपके उदाहरण –

1

सबक्वायरी में शामिल होना बिल्कुल सही है।

मुझे लगता है कि मुख्य समस्या यह है कि आप SELECT...FROM का उपयोग करते हैं।

सही सिंटैक्स SELECT * FROM

SELECT a.id, b.user 
FROM 
(SELECT * FROM a_table) a 
JOIN (SELECT * FROM b_table) b ON a.date = b.date; 
+0

की तरह पूछताछ की है, मुझे लगता है कि ... "कुछ फ़ील्ड" के लिए शॉर्टेंड होना है – MikeKulls

0

है आप लागू करने से पहले पूर्ण कार्तीय उत्पाद प्राप्त करने के लिए चाहते हैं जहां खंड, बजाय:

SELECT a.id, b.user FROM (SELECT...FROM a_table) a, (SELECT...FROM b_table) b WHERE a.date = b.date; 

आप बीच में उपयोग करना चाहिए 'में शामिल होने' , यानी

SELECT a.id, b.user FROM (SELECT...FROM a_table) a join (SELECT...FROM b_table) b WHERE a.date = b.date; 

उपरोक्त है सख्त मोड में स्वीकार्य नहीं है।