@samorez777

Возможно объединить 2 запроса в 1?

Возможно объединить 2 запроса в один?
$products= \R::getAll("SELECT * FROM product_status JOIN product ON product.status_id = product_status.id JOIN pay ON product.paysystem_id = pay.pay_id");


и

$query = " SELECT product.*,(SUM(pay.summa)/product.price)*100 AS 'percent' FROM product JOIN pay ON (product.paysystem_id=pay.pay_id) GROUP BY product.id ";
$pay = \R::getAll($query);
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ответы на вопрос 2
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Не зная точно структуры таблиц и уникальных индексов, ответить однозначно невозможно.
В целом не советую заниматься таким, перегруженные по логике запросы практически всегда оказываются медленнее чем 2 раздельных запроса.
Ответ написан
Комментировать
LaRN
@LaRN
Senior Developer
В MS SQL такой вариант нормально срабатывает:

SELECT product_status.*,
             product.*,
             pay.*,
             ((SELECT SUM(pay.summa)
                 FROM pay
               WHERE pay.pay_id = product.paysystem_id)/product.price)*100 AS 'percent'
    FROM product_status 
      JOIN product 
        ON product.status_id = product_status.id 
      JOIN pay 
        ON pay.pay_id = product.paysystem_id
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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