SELECT (SELECT SUM(table1.col1) FROM table1) AS sum_1,
(SELECT SUM(table2.col1) FROM table2) AS sum_2;
आप इसे इस प्रकार भी लिख सकते हैं:
SELECT t1.sum_c1, t1.sum_c2, t2.sum_t2_c1
FROM
(
SELECT SUM(col1) sum_c1,
SUM(col2) sum_c2
FROM table1
) t1
FULL OUTER JOIN
(
SELECT SUM(col1) sum_t2_c1
FROM table2
) t2 ON 1=1;
FULL JOIN का उपयोग ड्यूड कंडीशन के साथ किया जाता है ताकि कोई भी सबक्वेरी कोई परिणाम न दे (खाली) और बड़ी क्वेरी का कोई परिणाम न हो।
मुझे नहीं लगता कि आपके द्वारा लिखी गई क्वेरी ने आपके द्वारा प्राप्त किए जाने वाले परिणाम का उत्पादन किया होगा, क्योंकि यह तालिका 1 और तालिका 2 के बीच क्रॉस जॉइन कर रहा है, जो प्रत्येक एसयूएम को दूसरी तालिका में पंक्तियों की गिनती से बढ़ा देगा। ध्यान दें कि अगर दोनों में से कोई भी टेबल1/टेबल2 खाली है, तो क्रॉस जॉइन के कारण X पंक्तियाँ 0 पंक्तियों से एक खाली परिणाम लौटाएगी।
इसे देखें SQL Fiddle और परिणामों की तुलना करें।