У меня три таблицы:
table1, table2, table3 
Я пытаюсь получить общее количество строк из каждой таблицы, а также сумму столбца цены, например:
 $r['count'] = total rows of all 3 tables combined; $r['price'] = sum of all prices added together in all 3 tables combined; 
Вот мой запрос:
 SELECT COUNT(*) AS `count`, SUM(price) AS `price` FROM `table1` UNION SELECT COUNT(*) AS `count`, SUM(price) AS `price` FROM `table2` UNION SELECT COUNT(*) AS `count`, SUM(price) AS `price` FROM `table3` 
Когда я запускаю этот запрос, я получаю:
 count price 19 5609399 8 946000 4 0 
  Это, в свою очередь, не работает, когда зацикливается на PHP, поскольку они являются 3 отдельными значениями, и я возвращаюсь только «count = 19 и price = 5609399».  Они не все выходят вместе как count или price . 
Любая помощь очень ценится 🙂
 SELECT COUNT(*) AS `count`, SUM(price) AS `price` FROM ( SELECT price from `table1` UNION ALL SELECT price FROM `table2` UNION ALL SELECT price FROM `table3` ) X 
или вообще объединить 3 пары значений
 select sum(`count`) `count`, sum(`price`) `price` FROM ( SELECT COUNT(*) AS `count`, SUM(price) AS `price` FROM `table1` UNION ALL SELECT COUNT(*) AS `count`, SUM(price) AS `price` FROM `table2` UNION ALL SELECT COUNT(*) AS `count`, SUM(price) AS `price` FROM `table3` ) X 
Как правило , используйте UNION ALL при объединении таблиц, а не UNION, поскольку UNION удаляет дубликаты, поэтому, если ваш счет / сумма была точно
 1, 100 1, 100 2, 200 
Результатом запроса объединения является
 1, 100 # duplicate collapsed 2, 200 
Вы можете сделать это:
 SELECT count(1) AS `count`, SUM(price) AS `price` FROM (SELECT price FROM `table1` UNION ALL SELECT price FROM `table2` UNION ALL SELECT price FROM `table3`) AS `t` 
Попробуйте это как шаблон для ваших таблиц –
 SELECT (SELECT COUNT(*) FROM table1) + (SELECT COUNT(*) FROM table2), (SELECT SUM(price) FROM table1) + (SELECT SUM(price) FROM table2);