我有一个表单,其中某些输入具有与此查询相关的值:
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进行更新,我该如何执行该更新?
答案 0 :(得分:1)
在原始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