powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Обновление ячеек, через связующую таблицу
4 сообщений из 4, страница 1 из 1
Обновление ячеек, через связующую таблицу
    #39283426
execa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу помощи в довольно несложной задаче, которая мне не поддается.

Имеется три таблицы:
1. Обновляемая таблица, состоит из полей:
* row_id_table1 - ид строки в таблице 1
* target_field - поле, которое нужно будет обновить

2. Связующая таблица, состоит из:
* row_target_table2 - ид строки в таблице 2
* row_target_table1 - ид строки в таблице 1
* row_target_table3 - ид строки в таблице 3

3. Таблица из которой берем значение, состоит из:
* row_id_table3 - ид строки в таблице 3
* source_field - поле, из которого нужно взять значение для обновления

Прошу помочь составить запрос на обновление строк в таблице 1, значениями из таблицы 3. Заранее благодарен.
...
Рейтинг: 0 / 0
Обновление ячеек, через связующую таблицу
    #39283428
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
execa,

а ф чом траблема ? (кроме схемы многие ко многим)

так и пишем. например корелят, как самое понятное

Код: sql
1.
2.
3.
4.
5.
6.
7.
ОБНОВИТЬ назначение
УСТАНОВИТЬ назначение.поле 
                    =(ВЫБРАТЬ источник.поле ИЗ источник ГДЕ источник.ключ= связь.ключ_источника 
                         ПРЕДЕЛ 1 --- из--за многие ко многие
                     )
ИЗ связь 
ГДЕ связь.ключ_назначения=назначение.ключ



можно децл изменить - перенести источник из корелята в соединение

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
ОБНОВИТЬ назначение
УСТАНОВИТЬ назначение.поле 
                    источник1.поле
ИЗ 
(ВЫБРАТЬ 
              ключ_назначения
              ,источник.поле
ИЗ источник, связь
ГДЕ источник.ключ= связь.ключ_источника --OR JOIN ON
             -- ПРЕДЕЛ 1 --- из--за многие ко многие
) источник1
ГДЕ источник1.ключ_назначения=назначение.ключ



и даже менять стока раз скока много попадет в много
...
Рейтинг: 0 / 0
Обновление ячеек, через связующую таблицу
    #39283430
execa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq, проблема банальна, мои варианты не работали, поскольку sql'ем я занимаюсь по долгу службы, а не по призванию,
спасибо за варианты, попробую
...
Рейтинг: 0 / 0
Обновление ячеек, через связующую таблицу
    #39284310
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
execa,

https://www.postgresql.org/docs/9.5/static/sql-update.html

Попробуйте использовать UPDATE FROM. Примерно так. Не проверял.

Код: sql
1.
2.
3.
4.
UPDATE table1
  SET target_field = source_field
  FROM table2, table3
  WHERE row_id_table1 = row_target_table1 AND row_target_table3 = row_id_table3
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Обновление ячеек, через связующую таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]