sql - update - consulta de actualización con join en dos tablas
update a dos tablas simultaneamente sql (5)
Oficialmente, los lenguajes SQL no admiten una cláusula JOIN o FROM en una instrucción UPDATE a menos que esté en una subconsulta. Por lo tanto, el enfoque Hoyle ANSI sería algo así como
Update addresses
Set cid = (
Select c.id
From customers As c
where c.id = a.id
)
Where Exists (
Select 1
From customers As C1
Where C1.id = addresses.id
)
Sin embargo, muchos DBMSs como Postgres admiten el uso de una cláusula FROM en una instrucción UPDATE. En muchos casos, debe incluir la tabla de actualización y alias en la cláusula FROM, pero no estoy seguro acerca de Postgres:
Update addresses
Set cid = c.id
From addresses As a
Join customers As c
On c.id = a.id
Tengo tablas de customer
y address
.
Consulta:
SELECT *
FROM addresses a,
customers b
WHERE a.id = b.id
devuelve 474 registros
Para estos registros, me gustaría agregar el id
de customer
tabla de customer
en el cid
de la tabla de address
.
Ejemplo : si para el primer registro la identificación del cliente es 9 y la id
de la dirección también es 9, entonces me gustaría insertar 9 en la columna de la tabla de direcciones.
Lo intenté:
UPDATE addresses a,
customers b
SET a.cid = b.id
WHERE a.id = b.id
pero esto no parece funcionar.
Prueba este
UPDATE employee
set EMPLOYEE.MAIDEN_NAME =
(SELECT ADD1
FROM EMPS
WHERE EMP_CODE=EMPLOYEE.EMP_CODE);
WHERE EMPLOYEE.EMP_CODE >=''00''
AND EMPLOYEE.EMP_CODE <=''ZZ'';
Usar alias de tabla en la condición de unión:
update addresses a
set cid = b.id
from customers b
where a.id = b.id
este es el formato UPgreir la unión de Postgres:
UPDATE address
SET cid = customers.id
FROM customers
WHERE customers.id = address.id
Aquí están las otras variaciones: http://mssql-to-postgresql.blogspot.com/2007/12/updates-in-postgresql-ms-sql-mysql.html
update addresses set cid=id where id in (select id from customers)