Выборка из базы с заменой значения колонки MySQL

156
02 июля 2019, 12:20

Делаю запрос в БД. Задача стоит следующая: делаю выборку из таблицы A, в которой есть колонки price_min, price_max, weight_min, weight_max. В случае, если значений в полях не стоит, то при SELECT'е нужно подставлять значения из таблицы B, которая состоит с таблицей A в отношениях один ко многим A1 - nB. В таблице B есть колонки price, weight и A_id.

В результате, если нет какой-то какое-то из полей таблицы А не заполнено, я должен получить в это поле минимальное/максимальное значение аналогичной колонки из таблицы B, а саму таблицу А обновлять при этом нельзя.

Я выделывал запрос вида: SELECT *, (SELECT MIN(price) FROM B WHERE A.id = B.A_id) as price_min, (тут другие min/max выборки такого же вида) FROM A LEFT/RIGHT/INNER (пробовал эти на разных этапах) JOIN B ON B.A_id = A.id GROUP BY A.id (запрос примерный, писал по памяти)

В итоге я то значения получал, но они подставлялись соответственно в колонки price_min1, price_max1 и так далее. Как сделать подстановку значения именно внутрь существующей колонки.

Можно проигнорировать условие, что выборку надо делать только если значений не проставлено (там и так должны быть максимальные/минимальные значения с соответствующими наименованиями, но так как они есть не везде, то я подумал что было бы логично не менять их, если они уже стоят)

READ ALSO
Zend expressive 3, хранение сессий в базе данных?

Zend expressive 3, хранение сессий в базе данных?

Собственно натыкался ли кто-то на расширение для сессий, которое позволяет менять различные стореджи для хранения сессий?

139
Отправка telegram ботом сообщения с reply_markup

Отправка telegram ботом сообщения с reply_markup

Пытаюсь соорудить телеграм бота при помощи этой СДК

118