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

consulta sql

Estas en el tema de consulta sql en el foro de Mysql en Foros del Web. Hola, tengo un pequeño problema que parece sencillo pero no logro solucionar y es que no logro armar la consulta que necesito. Tengo las siguientes ...
  #1 (permalink)  
Antiguo 27/03/2015, 17:16
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 1
consulta sql

Hola, tengo un pequeño problema que parece sencillo pero no logro solucionar y es que no logro armar la consulta que necesito. Tengo las siguientes tablas:

productos(id,nombre)
proveedores(id,nombre)
ctacte(producto,proveedor,cantidad)

resulta que cuando quiero seleccionar todos los productos que no pertenecen a un proveedor especifico no se como lograrlo.

seria algo como:
Código SQL:
Ver original
  1. SELECT productos.id,productos.nombre FROM productos,ctacte
  2. WHERE ctacte.proveedor=1 AND ctacte.producto!=(SELECT producto FROM ctacte WHERE proveedor=1)
aunque esta consulta no funciona debido a que la subconsulta retorna mas de 1 valor

Muchas gracias por su ayuda!!

Última edición por gnzsoloyo; 28/03/2015 a las 08:37
  #2 (permalink)  
Antiguo 28/03/2015, 08:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: consulta sql

No lo compliques.
Según dices, en CTACTE se relacionan los productos con el proveedor, luego, existe siempre un par (producto, proveedor) tal que si excluimos todos los que aparecen en esa lista relacionados con el proveedor 1, alcanza.
La query mayor no necesita relacionarse con CTACTE para esto:
Código MySQL:
Ver original
  1. SELECT  id, nombre
  2. FROM productos P
  3. WHERE P.id NOT IN (SELECT  producto
  4.                 FROM ctacte
  5.                 WHERE proveedor = 1)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 28/03/2015, 08:46
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 1
Respuesta: consulta sql

genial!! No se me había ocurrido que podía usar IN!! Muchas gracias!

Etiquetas: select, sql, tabla
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:36.