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

mysql-forespørgsel for at forbinde 3 forespørgsler i 1 tabel, mens gennemsnittet beregnes

Hour() ser ud til at det ville være en nyttig funktion til dette, da du kun kigger på en enkelt dag. Måske noget som dette ville fungere for dig:

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;

Da det bruger indre joinforbindelser, antager jeg, at der altid vil være mindst én post i hver tabel for timen, men det virker som en rimelig antagelse.




  1. Kan ikke konvertere værdien '2012-04-05 10:20:00' fra kolonne XX til TIMESTAMP

  2. Konvertere en AM/PM-tid til 24 timers format ved hjælp af PHP eller MySQL?

  3. Fjern prikker og kommaer fra kolonneværdier

  4. MySQL Vælg Seneste række af specifik værdi