Mysql
 sql >> Database >  >> RDS >> Mysql

query mysql per unire 3 query in 1 tabella durante la media

Ora() sembra che sarebbe una funzione utile per questo, poiché stai guardando solo un giorno. Forse qualcosa del genere funzionerebbe per te:

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;

Dato che utilizza inner join, presumo che ci sarà sempre almeno un record in ogni tabella per l'ora, ma sembra un'ipotesi ragionevole.