dedlfix: 2 Queries, die dasselbe Ergebnis bringen sollen, aber nicht tun

Beitrag lesen

Hi!

Diese hier sollte dasselbe Ergebnis bringen, aber das macht sie nicht.
SELECT FROM_UNIXTIME(Datum, '%Y%|%m') AS ym from table where ym="2010|01"

Das kann so nicht funktionieren, weil die Reihenfolge der Abarbeitung nicht zulässt, dass ein Alias aus der SELECT-Klausel in der WHERE-Klausel verwendet werden kann.

FROM legt die beteiligten Tabellen fest.
WHERE schränkt die zu berücksichtigenden Datensätze ein.
GROUP BY nimmt eine Zusammenfassung vor.
Jetzt erst kommt das SELECT und berechnet die Ergebnismenge inklusive der dort angegebenen Formeln.
HAVING schränkt die Ergebnismenge weiter ein.
ORDER BY sortiert und
LIMIT nimmt den angegebenen Teil aus der Ergebnismenge.

Das SELECT kommt erst zum Zuge, wenn das WHERE schon längst Geschichte ist. Eine Bezugnahme kann immer nur in späteren Schritten erfolgen.

Lo!