Глупейшая ситуация возникла, однако.
Потратил не менее 30 минут на написание вот такого простого запроса.
UPDATE invoices SET contractorname = c.name from contractors c where invoices.contractorid = c.id
Дело в том, что мне потребовалось перенести ИМЯ Клиента из таблицы Клиентов в поле находящееся в таблице Счетов.
В таблице Счетов id клиента уже был.
Чтобы такого не повторилось, и я в случае чего быстренько вспомнил, распишу все подробно, так как с SQL сталкиваюсь редко и стараюсь писать запросы как можно более простые и понятные.
UPDATE invoices
-- будем апдейтить эту таблицу Счетов 'invoices'.
SET contractorname = c.name from contractors c
-- будем апдейтить поле 'contractorname' с именем клиента в таблице Счетов
-- = апдейтить его будем данными из поля 'с.name' в таблице Клиенты 'contractors '
WHERE invoices.contractorid = c.id
-- ну и условие, по которому у нас будут сравниваться поля в одной и в другой таблице.
Сначала я по какой-то непонятной мне старой привычке хотел написать следующее:
UPDATE invoices, contractors SET invoices.contractorname = contractors.name WHERE invoices.contractorid = contractors.id
Но это не прокатывает в PostgreSQL.
В общем гуггл руллит :)
Потратил не менее 30 минут на написание вот такого простого запроса.
UPDATE invoices SET contractorname = c.name from contractors c where invoices.contractorid = c.id
Дело в том, что мне потребовалось перенести ИМЯ Клиента из таблицы Клиентов в поле находящееся в таблице Счетов.
В таблице Счетов id клиента уже был.
Чтобы такого не повторилось, и я в случае чего быстренько вспомнил, распишу все подробно, так как с SQL сталкиваюсь редко и стараюсь писать запросы как можно более простые и понятные.
UPDATE invoices
-- будем апдейтить эту таблицу Счетов 'invoices'.
SET contractorname = c.name from contractors c
-- будем апдейтить поле 'contractorname' с именем клиента в таблице Счетов
-- = апдейтить его будем данными из поля 'с.name' в таблице Клиенты 'contractors '
WHERE invoices.contractorid = c.id
-- ну и условие, по которому у нас будут сравниваться поля в одной и в другой таблице.
Сначала я по какой-то непонятной мне старой привычке хотел написать следующее:
UPDATE invoices, contractors SET invoices.contractorname = contractors.name WHERE invoices.contractorid = contractors.id
Но это не прокатывает в PostgreSQL.
В общем гуггл руллит :)
Комментариев нет :
Отправить комментарий