@khodos_dmitry

Можно ли оптимизировать этот sql-запрос и избежать ошибки ONLY_FULL_GROUP_BY?

SELECT `link`, `link_r` FROM (SELECT `cpl_link_offer`.`link` , `cpl_offer_cpa`.`link` as `link_r` FROM `cpl_link_offer` JOIN `cpl_offer_cpa` ON `cpl_link_offer`.`offer_id` = `cpl_offer_cpa`.`offer_id` JOIN `cpl_cpa` ON `cpl_cpa`.`name` = `cpl_offer_cpa`.`cpa` ORDER BY `cpl_offer_cpa`.`rating` DESC, `cpl_cpa`.`rating` DESC) AS `t1` GROUP BY `link`
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `o`.`link`, ANY_VALUE(`c`.`link`) as `link_r` 
  FROM (
    SELECT `offer_id`, `link`
    FROM `cpl_offer_cpa`
    WHERE `cpa` IN (
      SELECT `name`
        FROM `cpl_cpa`
    )  
  ) AS `c`
  JOIN `cpl_link_offer` AS `o` ON `o`.`offer_id`  = `c`.`offer_id` 
  GROUP BY `o`.`link`
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
isset89
@isset89
Врёшь, тебе нравится
Group by t1.link, t1.link_r - если дописать ваш код в конце, при ONLY_FULL_GROUP_BY =TRUE, то ошибки не будет, если оставить как у вас сейчас есть, то запрос не выполниться
А ещё надо бы подписать
SELECT `t1`.`link`, `t1`.`link_r`
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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