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

Consulta vacia si no estan todos los registros de un 'IN'

Estas en el tema de Consulta vacia si no estan todos los registros de un 'IN' en el foro de Mysql en Foros del Web. Buenas gente, pues poco mas lo que dice el titulo, estoy buscando una manera por la cual la consulta me devuelva una consulta vacia si ...
  #1 (permalink)  
Antiguo 10/08/2010, 10:15
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 15 años, 2 meses
Puntos: 13
Consulta vacia si no estan todos los registros de un 'IN'

Buenas gente, pues poco mas lo que dice el titulo, estoy buscando una manera por la cual la consulta me devuelva una consulta vacia si no encuentra TODOS los registros que les paso en un IN.

Ej: Select * FROM usuarios WHERE id IN (1,2,3,4,5,6,7,8,9)

Quiero que solo me devuelva el array si estan todos esos registros. ¿Hay alguna manera de hacerlo por SQL? He estudiado SQL pero no hasta este punto, es un caso puntual.
  #2 (permalink)  
Antiguo 10/08/2010, 10:57
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Consulta vacia si no estan todos los registros de un 'IN'

Analizando el problema, no está tan facil como parece valiendose de SQL.
Se me ocurre hacer la comparación en un procedimiento que retorne la consulta valiendose de cursores, pero esto podría tratarse en el lenguaje de programación que utilices de una forma mas organizada y sencilla.

Te recomiendo lo hagas en tu lenguaje.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 10/08/2010, 11:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Consulta vacia si no estan todos los registros de un 'IN'

¿Quieres decir que estén todos esos id?
Select * FROM usuarios WHERE id IN (1,2,3,4,5,6,7,8,9) GROUP BY id HAVING COUNT(distinct id) >= 9
No he probado nada.
  #4 (permalink)  
Antiguo 10/08/2010, 12:31
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Consulta vacia si no estan todos los registros de un 'IN'

No funciona jurena.

Ya que el count(distinct id) siempre será 1 para todo el grupo de registros (Suponiendo que no hay ids repetidos).

Con programación se pueden manejar con condicionales de comparación que recorra la consulta solo si todos los valores pertenecen a la consulta. de lo contrario que no muestre registros.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 10/08/2010, 13:21
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: Consulta vacia si no estan todos los registros de un 'IN'

Al final he usado programacion viendo que mediante SQL no conozco manera alguna de hacer frente a este problema.
  #6 (permalink)  
Antiguo 11/08/2010, 03:13
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Consulta vacia si no estan todos los registros de un 'IN'

SELECT tabla.id, t1.dato FROM tabla,(SELECT count(distinct id) dato FROM tabla WHERE id IN (1,2,3,4,5,6,7,8,9))t1 WHERE id IN (1,2,3,4,5,6,7,8,9) AND t1.dato =9

Etiquetas: registros, vacias
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 13:43.