|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
Здравствуйте, коллеги! Помогите, пожалуйста, в составлении сложного для меня запроса, так танцы с бубном не смогли вызвать результативный дождь. Привожу схематичную структуру таблицы (слева) и то, что должно получиться в результате запроса (справа): Нужно заменить: payment_id - с 52 на 68 payment_name - с "Карта" на "Нал" payment_plugin - с "card" на "cash" для тех order_id, где shipping_name = "авто" ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 01:56 |
|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 02:16 |
|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
982183, Вы точно ознакомились с описанием того, что требуется? С синтаксисом простого UPDATE / SET я знаком. Сложность (по крайней мере, для меня) заключается в том, что условие идёт по ячейкам другой строки, а связь с заменяемыми ячейками идет через order_id. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 02:29 |
|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
А вы попробуйте сначала на русском языке сформулировать задачу. Тогда и синтаксис будет понятен. Про "ячейки другой строки" изначально ничего не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 02:36 |
|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
А кто/что мешает сделать соответствующий фильтр? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 02:38 |
|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
Boxsterдля тех order_id, где shipping_name = "авто" WHERE order_id in (SELECT order_id FROM t where shipping_name = "авто") ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 02:41 |
|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
982183, благодарю за подсказку! Сделал через: UPDATE table SET value = 78 WHERE value = 52 AND order_id in (SELECT order_id FROM (SELECT order_id FROM table WHERE name = 'shipping_name' AND value = 'авто') AS t2) Остальные поля аналогично. Для избежания "Can't specify target table for update in FROM clause" для внутреннего запроса использована временная таблица и использован SELECT FROM SELECT Возможно, это кому-нибудь пригодится. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 04:45 |
|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4.
Я честно не понял, зачем два раза order_id фильтровать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 06:39 |
|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Для версии 8+ разумнее данные для замены сформировать в виде таблицы в CTE. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 07:16 |
|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
Ну вот, сразу видна разница в подходах между профи и "между делом". Забываются со временем редкие подходы и нестандартные варианты. + диалекты сильно влияют на эти самые подходы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 11:14 |
|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
BoxsterДля избежания "Can't specify target table for update in FROM clause" для внутреннего запроса использована временная таблица и использован SELECT FROM SELECT Возможно, это кому-нибудь пригодится. Дошло. Попробуй так: Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 11:17 |
|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
982183сразу видна разница в подходах между профи и "между делом"Да я вообще не программист. И не DBA. Так что не надо на меня бочку-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 14:29 |
|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
Да и я больше IT-археолог. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 15:50 |
|
Сложный запрос с условиями по ячейкам и группировкой?
|
|||
---|---|---|---|
#18+
Akina982183сразу видна разница в подходах между профи и "между делом"Да я вообще не программист. И не DBA. Так что не надо на меня бочку-то... в БД шарите, значит DBD "назвался груздем - полезай" а вообще там вроде комплимент был ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 17:16 |
|
|
start [/forum/topic.php?fid=47&fpage=33&tid=1829053]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 321ms |
total: | 448ms |
0 / 0 |