Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Cómo hacer que devuelva todos los nombres de la tabla2 que no están en la tabla1???

Estas en el tema de Cómo hacer que devuelva todos los nombres de la tabla2 que no están en la tabla1??? en el foro de Mysql en Foros del Web. Hola Tengo un problemón. Abstrayendo, tengo la siguiente tabla Campos tabla1: nombre, num_error Campos tabla2: nombre Quiero hacer un update de la tabla1, que sea ...
  #1 (permalink)  
Antiguo 13/04/2006, 04:24
 
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 44
Antigüedad: 21 años, 2 meses
Puntos: 0
Cómo hacer que devuelva todos los nombres de la tabla2 que no están en la tabla1???

Hola

Tengo un problemón. Abstrayendo, tengo la siguiente tabla

Campos tabla1:
nombre, num_error

Campos tabla2:
nombre

Quiero hacer un update de la tabla1, que sea que sume 1 a num_error en los registros cuyo nombre no esté en la tabla2.

Es decir, si en la tabla1 tenemos

nombre
-------
Adolfo
Vicente
David

Y en la tabla2 tenemos
nombre
-------
Adolfo
Miguel
Jose

Tendría que sumar 1 al campo num_error de Vicente y David en la tabla1, no?

Esto me gustaría hacerlo usando este código:

UPDATE tabla1, tabla2
SET tabla1.num_error=tabla1.num_error+1
WHERE (SELECT COUNT(*) FROM tabla1,tabla2 WHERE tabla1.nombre=tabla2.nombre)=0


Pero no puedo usar un select anidado porque mi versión de Mysql no me lo permite.

Y haciendo...

UPDATE tabla1, tabla2
SET tabla1.num_error=tabla1.num_error+1
WHERE tabla1.nombre<>tabla2.nombre


...no funciona bien, porque busca si un nombre de la tabla1, por ejemplo Adolfo, no está en la tabla, y siempre devuelve que no está, porque aunque no lo encuentra en el primer registro, pues adolfo=adolfo, en el segundo y el tercero sí se cumple que es falso, pues adolfo!=miguel y adolfo!=jose...

Así pues, ¿cual es la solución?

Yo utilizo PHP. ¿Se puede hacer esto sin necesidad de trabajar con los resultados de un SELECT y haciendo UPDATE de los datos que no estén en el array? Me gustaría hacer esto sólo con Mysql, sin utilizar arrays en PHP para que el rendimiento sea óptimo.

Un saludo.
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 16:05.