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

Extraer datos de dos tablas con número de filas distintos

Estas en el tema de Extraer datos de dos tablas con número de filas distintos en el foro de Bases de Datos General en Foros del Web. Saludos a todos. Tengo dos tablas (A y B) con distintos números de filas y necesito extraer los datos que están en A y que ...
  #1 (permalink)  
Antiguo 26/02/2009, 09:35
 
Fecha de Ingreso: mayo-2005
Mensajes: 55
Antigüedad: 19 años
Puntos: 1
Pregunta Extraer datos de dos tablas con número de filas distintos

Saludos a todos.

Tengo dos tablas (A y B) con distintos números de filas y necesito extraer los datos que están en A y que no están en B. La fila que tienen en comun los dos es el código. Yo hice lo siguiente pero no me funciona, me da un resultado erróneo.

SELECT a.art_codigo, ad.art_codigo
FROM articulos a, articulos_definitiva ad
WHERE ad.art_codigo!=a.art_codigo

La tabla Articulos tiene 1790 filas y Articulos_definitiva tiene 1417 filas, por lo que el resultado debería ser 373 y me sale 2535013

Mucho agradezco una ayudita! no sé si estoy planteando mal la lógica... no sé

GRACIAS DE ANTEMANO
  #2 (permalink)  
Antiguo 26/02/2009, 10:36
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Extraer datos de dos tablas con número de filas distintos

saludos.

Lo puedes hacer con except

select campo from a
except
select campo from b

Espero haberte ayudado
  #3 (permalink)  
Antiguo 26/02/2009, 11:04
jfw
 
Fecha de Ingreso: enero-2009
Mensajes: 117
Antigüedad: 15 años, 3 meses
Puntos: 3
Respuesta: Extraer datos de dos tablas con número de filas distintos

Prueba también con:

SELECT a.art_codigo
FROM articulos a
WHERE a.art_codigo NOT IN (SELECT ad.art_codigo FROM articulos_definitiva ad)
__________________
Buscador de casas rurales en España
  #4 (permalink)  
Antiguo 26/02/2009, 13:37
 
Fecha de Ingreso: mayo-2005
Mensajes: 55
Antigüedad: 19 años
Puntos: 1
Respuesta: Extraer datos de dos tablas con número de filas distintos

Muchísimas gracias huesos52 y jfw. Me ha resultado bien! Lo hice con la sugerencia de jfw. Con el Except no funcionó del todo bien, quizás cometí un error pero igual, GRACIAS POR SU AYUDA.
  #5 (permalink)  
Antiguo 26/02/2009, 14:13
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: Extraer datos de dos tablas con número de filas distintos

Cita:
Iniciado por jfw Ver Mensaje
Prueba también con:

SELECT a.art_codigo
FROM articulos a
WHERE a.art_codigo NOT IN (SELECT ad.art_codigo FROM articulos_definitiva ad)
Esto funciona, pero no es la mejor opcion.
Si las tablas son grandes, la consulta se eterniza.

Salu2
  #6 (permalink)  
Antiguo 27/02/2009, 09:21
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Extraer datos de dos tablas con número de filas distintos

No sé qué base de datos estás utilizando. MySQL no acepta except. Puedes utilizar esto otro para encontrar los de la tabla articulos que no tienen correspondencia en la tabla articulos_definitiva.

SELECT a.art_codigo, ad.art_codigo
FROM articulos a LEFT JOIN articulos_definitiva ad ON ad.art_codigo=a.art_codigo WHERE ad.art_codigo IS NULL
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 08:07.