ОБНОВЛЕНИЕ в postgresql с JOINS - PullRequest
       1

ОБНОВЛЕНИЕ в postgresql с JOINS

0 голосов
/ 26 октября 2018

У меня есть форма, в которой некоторые входные данные имеют значение, которое создается с помощью этого запроса:

SELECT e.tree.nombre
FROM d.p
JOIN e.theme ON id = id_capa
LEFT JOIN e.tree ON e.theme.id_tree = e.tree.id
WHERE id_capa = 816

e и d являются схемами. id_capa = 816 передается в качестве аргумента запроса из формы, которую я редактирую. Возвращает значение правильно. Теперь я хочу изменить это значение в моей форме, поэтому мне нужно ОБНОВИТЬ, но у меня есть несколько таблиц, я прочитал, что я не могу сделать ОБНОВЛЕНИЕ с JOINS, как мне сделать это ОБНОВЛЕНИЕ?

1 Ответ

0 голосов
/ 27 октября 2018

В исходном запросе SQL таблица d.p не используется ни в SELECT, ни в условиях. Так что это можно пропустить; запрос может быть переписан как:

SELECT e.tree.nombre
FROM e.theme
  LEFT JOIN e.tree ON e.theme.id_tree = e.tree.id
WHERE e.theme.id = 816

Поскольку запрос выбирает значения из таблицы, объединенной с LEFT JOIN, результатом может быть NULL, то есть объединенная запись из таблицы e.tree может быть пропущена. В этом случае обновлять нечего.

Существующая совпадающая запись может быть обновлена ​​с помощью запроса:

UPDATE e.tree
SET nombre = <NEW_VALUE>
FROM e.theme
WHERE e.theme.id = 816 AND e.theme.id_tree = e.tree.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...