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

[SOLUCIONADO] Consulta Compleja en PHP y Mysql

Estas en el tema de Consulta Compleja en PHP y Mysql en el foro de Mysql en Foros del Web. Hola amigos, Tengo dos tablas en Mysql, y la siguiente consulta... La tabla hab Tiene las siguiente estructura y contenido La tabla reservas Tiene las ...
  #1 (permalink)  
Antiguo 16/04/2017, 07:41
Avatar de insyse  
Fecha de Ingreso: abril-2005
Ubicación: Colombia
Mensajes: 203
Antigüedad: 14 años, 7 meses
Puntos: 5
Consulta Compleja en PHP y Mysql

Hola amigos,

Tengo dos tablas en Mysql, y la siguiente consulta...

La tabla hab
Tiene las siguiente estructura y contenido


La tabla reservas
Tiene las siguiente estructura y contenido


La siguiente consulta, me muestra la tabla hab, descartando las habitaciones que aparecen como reservadas dentro de X fecha en la tabla reservas

Código:
SELECT * FROM hab WHERE idHabitacion NOT IN 
	( SELECT idHabitacion FROM reservas WHERE Estado = 'Reservado' AND ('2017-04-28' BETWEEN `CheckIn` AND `CheckOut`) OR  Estado = 'Generado' AND ('2017-04-28' BETWEEN `CheckIn` AND `CheckOut`))
Este es el resultado de la consulta...


Esto funciona bien, pero quisiera obtener el mismo resultado pero solo mostrando dos habitaciones filtrando la columna hab.AA y me mostrara solo un registro con valor CON y un registro con valor SIN

Trate de hacerlo con DISTINCT

Código:
SELECT * DISTINCT AA FROM hab WHERE idHabitacion NOT IN 
	( SELECT idHabitacion FROM reservas WHERE Estado = 'Reservado' AND ('2017-04-28' BETWEEN `CheckIn` AND `CheckOut`) OR  Estado = 'Generado' AND ('2017-04-28' BETWEEN `CheckIn` AND `CheckOut`))
Pero me sale error, creo que no se puede usar el comodin * con DISTINCT y si lo uso sin el comodin *, me muestra solo la columna AA y esto no me sirve.

La idea es que la consulta saliera así...




Agradezco su ayuda.
__________________
.................................................. ...........................
No todos nacemos aprendidos !
  #2 (permalink)  
Antiguo 22/04/2017, 13:25
 
Fecha de Ingreso: noviembre-2013
Mensajes: 13
Antigüedad: 6 años
Puntos: 0
Respuesta: Consulta Compleja en PHP y Mysql

Hola, insyse.

No tengo tu base de datos para probar yo mismo la consulta pero creo que si haces:

Código MySQL:
Ver original
  1. SELECT tHabitacion, dHabitacion, AA, noHabitacion, MaxPax, idHabitacion FROM hab WHERE idHabitacion NOT IN
  2.     ( SELECT idHabitacion FROM reservas WHERE Estado = 'Reservado' AND ('2017-04-28' BETWEEN `CheckIn` AND `CheckOut`)
  3. OR  Estado = 'Generado' AND ('2017-04-28' BETWEEN `CheckIn` AND `CheckOut`)) GROUP BY AA LIMIT 2

Creo que agrupando por AA y limitando a 2 te saldrían. También he leido que recomiendan no usar los * para hacer las consultas, indicando los campos a seleccionar, por temas de rendimiento.

Saludos.

Etiquetas: compleja, fecha, php, registro, 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 07:39.