У меня есть 2 таблицы, и я пытаюсь обновить один из столбцов в одном из них, используя данные из второго. У меня есть SQL:
UPDATE
table_one
SET
contents = CONCAT('https://someurl.com/', table_one.id, '.', split_part(T2.file_name, '.', 2))
FROM
table_one T1
JOIN
table_two T2
ON
T1.id = T2.image_id
WHERE
T1.kind IN ('image')
Я пытаюсь взять значение file_name
столбца таблицы table_two
и вставить его в столбец contents
table_one
для данного идентификатора и для вида 'image', который является столбцом table_1
. Таким образом, обновление должно происходить только для записей с kind = 'image'. Часть split и concat выполняется для получения расширения файла.
Это работает, но обновляет все записи, не принимая во внимание вид, который установлен как «изображение». Также кажется, что он получает все одинаковые значения, потому что все расширения установлены одинаково.
Может кто-нибудь указать на то, что я делаю неправильно, пожалуйста?
Обновление: Я использую Postgres.
Спасибо.