Как можно объединить mysql запрос?

169
24 марта 2019, 10:20

Объединить 3 запроса в 1 возможно? А то сейчас приходится делать 3 через php

  1. Получаем список item_id из таблицы items_all

    SELECT `item_id` FROM `items_all` WHERE 1
    
  2. По списку item_id получаем среднюю стоимость для каждого во второй таблице

    SELECT `id_item`,(sum(`price_item`)/count(*)) as aver_price FROM `l2_trader` WHERE `id_item`='{Полученный ранее список item_id}'
    
  3. Обновить данные в items_all столбец aver

    UPDATE `items_all` SET `aver`=aver_price WHERE `item_id`={Полученный ранее список id}
    

Скорее всего через объединение надо делать но что то я немогу

UPDATE `items_all` as table1 
INNER JOIN(
    SELECT (sum(`price_item`)/count(*)) as aver_price FROM `l2_trader` WHERE `id_item`=table1.`item_id`) as table2 USING(`item_id`)
SET table1.`aver`=table2.aver_price
Answer 1

Честно говоря у вас запросы не совсем рабочие те, что вы написали. Вот это не то, что вам нужно?

UPDATE items_all ia SET aver = (SELECT sum(price_item)/count(*) FROM l2_trader lt WHERE lt.id_item = ia.item_id)
READ ALSO
MYSQL Оптимизировать вложенный запрос с Group BY

MYSQL Оптимизировать вложенный запрос с Group BY

Ситуация следующая, есть БД MYSQL 55 в ней таблица с ~1млн строк

166
Почему округление до сотых при помощи ROUND() в MySQL округляет вниз?

Почему округление до сотых при помощи ROUND() в MySQL округляет вниз?

Выполняю запрос к БД MySQL, чтобы получить проценты за платеж:

167
Как скрыть background кнопки

Как скрыть background кнопки

Только в хроме наблюдается проблема с отображением кнопки - полоски вертикальныеПомогите их убрать

197
Картинки в один ряд по горизонтали

Картинки в один ряд по горизонтали

Изображения одинакового размера, но не становятся в один ряд по горизонтали

151