dpablo_escobarr
@dpablo_escobarr

Оптимизация запроса sql. Выбрать данные разных таблиц?

Приветствую всех. Немогу понять какими путями возможно составить запрос по другому.
Имею такого вида запрос:
SELECT			  	
	 sum(state = 1) as yes,
	 sum(state = 0) as no
				  
FROM pay_partners WHERE autor_signal = :autor

UNION SELECT 
         sum(buy_follow),
	sum(money_buy_sub)

 FROM partners_all WHERE autor = :autor
						   	
UNION SELECT  avg(count_symbols), avg(count_symbols) FROM article WHERE autor = :autor

 UNION SELECT rating, rating FROM users WHERE login = :autor

где :autor это логин автора. а повторное использование выборки столбцек в последних двух запросах, это просто как placeholder импровизированный, так как sql при использовании JOIN'ов начинает прокручивать столбцы по нескольку раз, и все мои counr, avg, max функции просто показывают перекрученные данные.

Можно ли обойтись без дублирующих импровизированных плесхолдеров?
в последних двух юнионах приведены дублирующие данные, так как sql выдает ошибку если колличество столбцев разное, вот и дописал дубли в виде плесхолдеров.

Как можно сделать попроще? всилу неопытности пока непонимаю. спасибо за ответы!!!
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
@101-s
последние 2 строки можно изменить так:
UNION SELECT 0, 0 FROM article WHERE autor = :autor
UNION SELECT 0, 0 FROM users WHERE login = :autor


я так понял, последние 2 таблицы нужны для подсчета строк?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы