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

Logica de query

Estas en el tema de Logica de query en el foro de Mysql en Foros del Web. Buenas a todos, estoy teniendo problemas para armar un query complejo, pero el problema en sí se reduce a algo bastante "simple", Pero no se ...
  #1 (permalink)  
Antiguo 01/09/2009, 09:19
 
Fecha de Ingreso: septiembre-2009
Mensajes: 2
Antigüedad: 14 años, 8 meses
Puntos: 0
Logica de query

Buenas a todos, estoy teniendo problemas para armar un query complejo, pero el problema en sí se reduce a algo bastante "simple", Pero no se me ocurre una solución para resolverlo.

Básicamente se trata de una tabla que guarda muchos tipos de cocina para un mismo restaurante.

Esta es la situación:

Tabla: tiposdecomida
ID | Restaurante | Cocina
1 | Kansas | Americana
2 | Kansas | Internacional
3 | Sirop | Internacional
4 | Vicente | Pastas

Yo quiero saber que restaurantes NO tienen cocina Internacional.
Kansas TIENE, Sirop TIENE, Vicente NO TIENE... por ende el resultado debe ser Vicente.

El query mas simple sería así.

SELECT * FROM tiposdecomida WHERE Cocina <> 'Internacional'

Pero el resultado me incluye Kansas puesto que tiene otro tipo de cocina.

Kansas Americana
Vicente Pastas

-------------------------------------------------------------------------
Resultado Deseado

Vicente Pastas
-------------------------------------------------------------------------

Quería saber si se les ocurre como resolver este inconveniente...

Muchas gracias...
  #2 (permalink)  
Antiguo 01/09/2009, 09:33
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: Logica de query

Una solución simple y algo tosca sería:
Código sql:
Ver original
  1. SELECT *
  2. FROM tiposdecomida
  3. WHERE ID NOT IN  
  4.      (SELECT ID
  5.       FROM  tiposdecomida
  6.       WHERE Cocina = 'Internacional');
__________________
¿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 01/09/2009, 10:01
 
Fecha de Ingreso: septiembre-2009
Mensajes: 2
Antigüedad: 14 años, 8 meses
Puntos: 0
Sonrisa Respuesta: Logica de query

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Una solución simple y algo tosca sería:
Código sql:
Ver original
  1. SELECT *
  2. FROM tiposdecomida
  3. WHERE ID NOT IN  
  4.      (SELECT ID
  5.       FROM  tiposdecomida
  6.       WHERE Cocina = 'Internacional');
Muchas gracias, de esta forma si funciona... quizás es un poco mas complejo de lo que estaba buscando... pero no se me ocurre algo mas simple tampoco...

El tema es que estoy programando algo en PHP que me genera esos Query de forma dinámica entre varias tablas con inner join, el tema es que para los casos positivos es bien simple, ya lo tengo hecho... pero para los negativos tendré que hacer que arme algo como eso de forma dinámica...

Si se les ocurre alguna forma mas simple me ayudaría mucho. Si no, no se preocupen... al menos ya me dieron una forma que funciona.
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 03:59.