Einzelnen Beitrag anzeigen
  #2  
Alt 21.05.2018, 23:28:40
AlexD AlexD ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 186
AW: mehrere Tabellen über Timestamp abfragen

Ich hab natürlich auch weiter um eine Lösung gesucht und hab mein Query etwas umgebaut.
Muss dazu sagen, dass ich ein absoluter Laie bin und programmiere nur für mich als Hobby.

Hab zwei SELECT-Abfragen integriert die von den anderen Tabellen auch nur den benötigten Zeitraum liefern sollen um die Zeit für die Abarbeitung zu verkürzen.

Die Zeit hat sich auch auf ca. 50 Sekunden verkürzt - ist aber immer noch sehr lange wenn man vor dem Bildschirm sitzt und warten muss.

Hier die aktuelle Abfrage:
PHP-Code:
// Datum der Form dd.mm.yyyy umwandeln in YYYY-mm-dd
    
if($von !== NULL && $bis !== NULL){

        
$vondatum_split explode(".",$von);
        
$vondatum $vondatum_split[2]."-".$vondatum_split[1]."-".$vondatum_split[0];

        
$bisdatum_split explode(".",$bis);
        
$bisdatum $bisdatum_split[2]."-".$bisdatum_split[1]."-".$bisdatum_split[0];
        
        
$zeitraum " BETWEEN  '".$vondatum."' AND '".$bisdatum."'";
    } elseif (
$jahr !== NULL){

        
$zeitraum " YEAR(heizung_webdaten.timestamp) = ".$jahr."";
    }

    
$sql_query "SELECT hzw.*, sthz.timestamp AS timestamp_strom, sthz.WirkenergieSigmaL_imp, sths.WirkleistungSigmaL
                    FROM heizung_webdaten hzw,
                         (SELECT * FROM strom_heizungsdaten WHERE timestamp "
.$zeitraum.") sthz,
                         (SELECT * FROM strom_hausdaten WHERE timestamp "
.$zeitraum.") sths
                    WHERE hzw.timestamp "
.$zeitraum."
                     AND hzw.wp_status = 12
                     AND ABS(UNIX_TIMESTAMP(hzw.timestamp) - UNIX_TIMESTAMP(sthz.timestamp)) < 59
                     AND ABS(UNIX_TIMESTAMP(hzw.timestamp) - UNIX_TIMESTAMP(sths.timestamp)) < 59
                ORDER BY hzw.timestamp"
;
    echo 
$sql_query."<br>";
    
    
$result $mysqli->query($sql_query);
    echo 
$mysqli->error;
    while(
$daten $result->fetch_assoc()){

        echo 
$daten['timestamp']." : ".$daten['wp_status']." => HZG-Strom_Daten: ".$daten['timestamp_strom']." ->  ".$daten['WirkenergieSigmaL_imp']."kWh |  akt. Verbrauch:".$daten['WirkleistungSigmaL']." kW<br>";
    } 
Mit Zitat antworten