Debe estar conectado para participar
Buscar en los foros:


 






Uso de Comodín:
*    coincide cualquier número de caracteres
%    coincide exactamente un caracter

UPDATE con JOIN (Cambiar varios campos, segun una de las tablas)

No hay Etiquetas
Entrada
Entry Level

Augustino

entradas: 85

00:35 23/10/2007

1

Ya intente lo siguiente, pero no me funciona y me da errores

UPDATE `City` SET `CountryName` = ( SELECT Pais
FROM `City`
INNER JOIN `Country` ON CountryCode = Code )

En este caso dice que no puedo meter un Select dentro del valor de un update, lo cual es logico, pero lo queria intentar

SELECT Pais as MiPais FROM `City`
INNER JOIN `Country`
ON CountryCode=Code UNION UPDATE `City` SET `CountryName` = MiPais;

Supuestamente hiba a funcionar mejor, pero no, dice que la sintasix es incorrecta

Que puedo hacer, entonces?

www.wio.com.mx
WIO World Integral Operations

Entry Level

Augustino

entradas: 85

03:07 23/10/2007

2

Si alguien le sirve, la solucion era

UPDATE `City` INNER JOIN `Country`
ON CountryCode = Code
SET `CountryName` = Name

www.wio.com.mx
WIO World Integral Operations

High End Level

hmc626

entradas: 694

14:01 23/10/2007

3

Hola!

De las consultas que posteaste, muy bien no entendí la que planteás en el primer caso. No es clara la estructura de la Tabla, ni cuáles son los campos que sometés al Join… por otra parte, Cómo que no se puede meter una Subconsulta dentro de un Update? Se puede perfectamente, con o sin Join…

En el segundo caso, el Union falló dado que está mal empleado. El Union sólo se emplea para conectar consultas con las mismas columnas. Lo que hiciste fue conectar una consulta de selección, con otra de actualización de datos…

En cuanto a la solución que proponés… traté de reproducirla pero no me salió. Capaz si nos das algunos datos más se entienda. Pero así como está, no la vi nunca…

Yo propongo esta solución (En SQL-Server):

@variable = (<consulta que trae el valor que querés, con join, filtros, etc&gtwink
UPDATE Tabla SET Columna = @variable

y listo! Corto, sencillo y entendible…

Saludos!

Entry Level

Augustino

entradas: 85

06:57 28/10/2007

4

Hola

Estoy en MySQL, disculpa por no decir, la tabla City era

CountryCode, Ciudad, District, y CountryName que estaba vacia y habia que llenarla, con los datos obtenidos de la tabla Country que trae las columnas

Code, Name

Code y CountryCode son los campos que se van a correlacionar y Name es el campo que trae el valor, que se inserto en la columnna CountryName

Lo bueno es que se soluciono, gracias por responder y disculpa mi tardanza en contestar

www.wio.com.mx
WIO World Integral Operations