2009-07-21 15 views
8

मैं एक क्वेरी में कई मायने रखता है की राशि लाने के लिए कोशिश कर रहा हूँ:कई COUNT से परिणाम जोड़े प्रश्नों

SELECT(
    SELECT COUNT(*) 
    FROM comments + 
    SELECT COUNT(*) 
    FROM tags + 
    SELECT COUNT(*) 
    FROM search 
) 

मैं कुछ यहाँ याद आ रही है। मुझे वाक्यविन्यास त्रुटि मिलती है।

उत्तर

15
SELECT (SELECT COUNT(*) FROM comments) 
    + (SELECT COUNT(*) FROM tags) 
    + (SELECT COUNT(*) FROM search) 
+2

हाँ, वास्तव में। नोट: ओरेकल में, आपको उस वाक्यविन्यास में "दोहरी से" जोड़ना होगा। –

+0

+1 बहुत अच्छा, मैं इसे इस तरह से करूँगा। – Zack

2
SELECT (
     SELECT COUNT(*) 
     FROM comments 
     ) + 
     (
     SELECT COUNT(*) 
     FROM tags 
     ) + 
     (
     SELECT COUNT(*) 
     FROM search 
     ) 
6

एक और (सुनिश्चित नहीं हैं कि MySQL के साथ समर्थित है, हालांकि - एसक्यूएल सर्वर में काम करता है):

SELECT SUM(Counts) FROM 
    (SELECT COUNT(*) AS Counts FROM COMMENTS UNION ALL 
    SELECT COUNT(*) FROM Tags UNION ALL 
    SELECT COUNT(*) FROM Search) s 
+0

उत्सुक - आपके प्रत्येक के पेशेवर/विपक्ष और स्वीकार्य उत्तर 'एसक्यूएल क्या हैं? प्रदर्शन के मामले में एक बेहतर है? कुछ और? – Liao

+0

टू लिओओ: क्वेरी विश्लेषक चलाएं और देखें कि यह क्या कहता है। वे समानार्थी हो सकते हैं। –

+0

बहुत अच्छा। एसक्यूएल कथन की गठबंधन के लिए +1। – Zack

2
SELECT SUM(ThisCount) 
    FROM (
    SELECT COUNT(*) AS ThisCount 
     FROM comments 

    UNION ALL 

    SELECT COUNT(*) AS ThisCount 
     FROM tags 

    UNION ALL 

    SELECT COUNT(*) AS ThisCount 
     FROM search 
    ) 
+3

संघ होना चाहिए सभी – dotjoe

+0

@ डॉटोजो: अच्छा पकड़ो! – n8wrl

+0

@ n8wrl: कुछ मिनटों से आपको मारो। डॉटजो के पकड़ के अलावा, और केवल एफवाईआई के अलावा, कॉलम उपनाम केवल पहले उप-चयन में आवश्यक है, क्योंकि इसे यूनियन ऑपरेशन के दौरान अन्य तीनों में अनदेखा किया जाता है। –

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