Foros del Web » Programando para Internet » PHP »

Actualizar campos con unión de tablas

Estas en el tema de Actualizar campos con unión de tablas en el foro de PHP en Foros del Web. hola amigos normalmente siempre he actualizado los campos en las tablas usando sentencias separadas pero ultimamente he usando usado union con join etct para seleccionar ...
  #1 (permalink)  
Antiguo 09/06/2010, 15:57
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Actualizar campos con unión de tablas

hola amigos normalmente siempre he actualizado los campos en las tablas usando sentencias separadas pero ultimamente he usando usado union con join etct para seleccionar
y me encontre esto

Código:
Si tienes dos tablas y estás tienen una clave en común (por ejemplo la clave “id”), entonces es posible actualizar el campo de una de las dos tablas (update_table) gracias a los datos de la segunda (reference_table) haciendo una unión de tablas. 

El código SQL es el siguiente: 

UPDATE update_table, reference_table SET update_table.field
=reference_table.fieldref WHERE update_table.id=reference_table.id

como podria interpretarlo en php si tengo que actualizar campos en la tabla A y actualizar campos de la tabla B si mi id fuera 458 como deberia ser en php

saludos espero sus comentarios

notas: si es correcto el uso de este tipo de query???
__________________
gerardo
  #2 (permalink)  
Antiguo 09/06/2010, 16:18
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: Actualizar campos con unión de tablas

Y si tal vez actualizas en dos query distintos para cada tabla. Así funciona y no tiene mucha complicación.
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #3 (permalink)  
Antiguo 09/06/2010, 19:46
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Actualizar campos con unión de tablas

En PHP debería ser igual, solo que deberías asignárselo a una variable y cerrarlo entre comillas.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #4 (permalink)  
Antiguo 10/06/2010, 08:28
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Respuesta: Actualizar campos con unión de tablas

gracias por responder amigos
pues hice algo asi

Código:
<?php
$sql="UPDATE tabla1 t1,tabla2 t2, tabla3 t3
SET t1.campoA = '40',
       t2.campoH= NULL,
       t3.campoO= 'ninguno' 
WHERE t1.campoB = X AND t2.campoI = Y AND t2.campoJ = Z
AND t3.campoP = W ...";
?>
otro ejemplo

Código:
UPDATE `table1`,`table2`,`table3`  
SET [all fields in all three tables to values] 
 WHERE `tables1`.`id` = 20439 AND `tables2`.`id` = 20439  
AND `tables3`.`id` = 20439
pero no se si asi es como lo indica el query que encontre

UPDATE update_table, reference_table SET update_table.field
=reference_table.fieldref WHERE update_table.id=reference_table.id


saludos
__________________
gerardo

Última edición por chalchis; 10/06/2010 a las 09:31
  #5 (permalink)  
Antiguo 10/06/2010, 09:39
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Respuesta: Actualizar campos con unión de tablas

mmmm sorry creo que el query que encontre es solo para actualizar el campo de una de las dos tablas en mi caso es actualizar los campos de la tabla A y los campos de la tabla b y el id es el campo que los relaciona solo para ah clararlo saludos.

encontre otra solución para no hacer tantos wheres

Código:
UPDATE a 
INNER JOIN b USING (id) 
SET a.firstname='Pekka', a.lastname='Kuronen', 
b.companyname='Suomi Oy',companyaddress='Mannerheimtie 123, Helsinki Suomi' 
WHERE a.id=1;
__________________
gerardo

Etiquetas: campos, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:45.