@EVOSandru6

Как в postgres забрать идентичные поля по связи один ко многим?

Добрый день,

Есть 2 таблицы - m_hotels (отели), mc_rooms (комнаты отелей)

Связь такая : mc_rooms.hotel_id == m_hotels.id

Мне нужно присвоить полям c_rooms.firm_id значения m_hotels.firm_id

Пробовал так:

update mc_rooms set mc_rooms.firm_id = m_hotels.firm_id where  mc_rooms.hotel_id = m_hotels.id;


НО словил ошибку:

ERROR: missing FROM-clause entry for table "m_hotels"
LINE 3: update mc_rooms set mc_rooms.firm_id = m_hotels.firm_id wher...
^
********** Ошибка **********

ERROR: missing FROM-clause entry for table "m_hotels"
SQL-состояние: 42P01
Символ: 85


Как правильно сделать?
  • Вопрос задан
  • 3624 просмотра
Решения вопроса 1
@EVOSandru6 Автор вопроса
UPDATE mc_rooms
SET firm_id=m_hotels.firm_id
from m_hotels
WHERE mc_rooms.hotel_id=m_hotels.id;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
UPDATE t
SET col1 = value
FROM table1 as t
--Далее JOIN если надо и т.д.
WHERE и т.д.

Вы from забыли о чем вам наглядно подсказали
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы