Ver Mensaje Individual
  #11 (permalink)  
Antiguo 31/03/2014, 02:12
emiliochu
 
Fecha de Ingreso: marzo-2014
Mensajes: 11
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: consulta sacando datos de tres tablas

Lo siento pero no doy con la tecla:

Código MySQL:
Ver original
  1. SELECT i.id_inmueble, COUNT(c.codigo_inmueble_es) cuenta, ts.id_servicio, SUM(ts.valor) totalServicio
  2. FROM `inmuebles` i
  3.     LEFT JOIN `tbl_servicios_inmuebles` `c` ON i.`id_inmueble` = `c`.`codigo_inmueble_es`
  4.     INNER JOIN tbl_servicios ts ON c.codigo_servicio = ts.id_servicio
  5. WHERE DATE(c.fecha_expiracion_servicio) >= CURDATE()
  6.     OR `c`.`codigo_inmueble_es`  IS NULL
  7. GROUP BY i.id_inmueble
En el INNER JOIN solo veo referenciada una tabla: tbl_servicios_inmuebles, y no veo forma de modificar el orden.
Además, eliminando la condición de la fecha en la clausula WHERE:

Código MySQL:
Ver original
  1. SELECT i.id_inmueble, COUNT(c.codigo_inmueble_es) cuenta, ts.id_servicio, SUM(ts.valor) totalServicio
  2. FROM `inmuebles` i LEFT JOIN `tbl_servicios_inmuebles` `c` ON i.`id_inmueble` = `c`.`codigo_inmueble_es`
  3. INNER JOIN tbl_servicios ts ON c.codigo_servicio = ts.id_servicio
  4. WHERE `c`.`codigo_inmueble_es` IS NULL
  5. GROUP BY i.id_inmueble
devuelve un conjunto de valores vacío.

Se me ocurre extraer los datos que faltan en otra consulta, pero creo que no seria eficiente. ¿Es posible en solo una consulta?

Última edición por gnzsoloyo; 31/03/2014 a las 08:24 Razón: Leginilidad de código