dedlfix: MySql Abfrage über 2 Tabellen mit having

Beitrag lesen

Tach!

SELECT , ( 6368 * SQRT(2(1-cos(RADIANS(breit)) * cos(0.88907776995895) * (sin(RADIANS(lang)) * sin(0.12164247348349) + cos(RADIANS(lang)) * cos(0.12164247348349)) - sin(RADIANS(breit)) * sin(0.88907776995895)))) AS Distance

FROM standorte
Having (Distance <= 10)
ORDER BY Distance


> gibt es einen Grund warum du HAVING statt WHERE verwendest, obwohl es keine Gruppierung gibt?  
  
Er hat in der SELECT-Klausel eine Berechnung mit dem Alias Distance drin. Diese Berechnung kann man nicht mit WHERE auswerten, weil die WHERE-Filterung vor der SELECT-Berechnung stattfindet. HAVING kommt erst nach der SLECT-Berechnung an die Reihe und kann sich auch auf dort ermittelte Ergebnisse beziehen. Having muss (zumindest bei MySQL) auch nicht zwingend mit GROUP BY einhergehen. Wollte man die Bedingung in WHERE auswerten, müsste man die komplette Formel dort nochmal notieren.  
  
  
dedlfix.