sql >> Base de Datos >  >> RDS >> Mysql

consulta mysql para unir 3 consultas en 1 tabla mientras se promedia

Hora() parece que sería una función útil para esto, ya que solo estás viendo un solo día. Tal vez algo como esto funcione para ti:

SELECT * FROM
 (SELECT HOUR(time) hour, avg(ph) AS avg_ph
  FROM ph 
  WHERE time >= NOW() - INTERVAL 1 DAY
  GROUP BY hour) p
JOIN 
 (SELECT HOUR(time) hour, avg(temperature) AS avg_temp
  FROM temperature1 
  WHERE time >= NOW() - INTERVAL 1 DAY
  GROUP BY hour) t ON t.hour = p.hour
JOIN 
 (SELECT HOUR(time) hour, avg(solids) AS avg_solids
  FROM solids 
  WHERE time >= NOW() - INTERVAL 1 DAY
  GROUP BY hour) s ON s.hour = p.hour;

Dado que utiliza uniones internas, asumo que siempre habrá al menos un registro en cada tabla para la hora, pero parece una suposición razonable.