SELECT (SELECT SUM(table1.col1) FROM table1) AS sum_1,
(SELECT SUM(table2.col1) FROM table2) AS sum_2;
Anda juga dapat menulisnya sebagai:
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 digunakan dengan kondisi yang tidak berguna sehingga salah satu subquery tidak dapat menghasilkan hasil (kosong) tanpa menyebabkan kueri yang lebih besar tidak memiliki hasil.
Saya tidak berpikir kueri seperti yang Anda tulis akan menghasilkan hasil yang Anda harapkan, karena melakukan CROSS JOIN antara table1 dan table2, yang akan mengembang setiap SUM dengan jumlah baris di tabel lain. Perhatikan bahwa jika salah satu table1/table2 kosong, CROSS JOIN akan menyebabkan X baris sebanyak 0 baris mengembalikan hasil kosong.
Lihat SQL Fiddle ini dan bandingkan hasilnya.