Hallo Forum,
gerade eben habe ich mich registriert, weil ich ein sehr seltsames Problem habe, das ich weder verstehe noch für das ich eine Lösung finde. Achtung: Posting ist etwas lang! Folgende Query:
liefert bei PostgreSQL das erwartete Ergebnis. Bei MySQL allerdings nicht, obwohl der Datenbestand derselbe ist und die Tabellen identisch aufgebaut sind.
Ergbnis MySQL (nicht richtig)
Ergbnis PostgreSQL (so muss es sein):
Es geht mir nicht um die Effektivität der Abfrage, sondern um die unterschiedlichen Ergebnisse.
Schon einmal vielen Dank für die Antworten und schon einmal schöne Weihnachtstage
JueDan
gerade eben habe ich mich registriert, weil ich ein sehr seltsames Problem habe, das ich weder verstehe noch für das ich eine Lösung finde. Achtung: Posting ist etwas lang! Folgende Query:
Code:
SELECT DISTINCT t_landkreise.warncellid,t_landkreise.name,t_landkreise.blkz,
wm.severity,wm.severity_nr,wm.areacolor,wm.headline,wm.ii,wm.warngroup,wm.urgency,wm.sent,wm.colorindex
FROM t_landkreise
INNER JOIN (
SELECT t_warnmeldung.* FROM t_warnmeldung
INNER JOIN (
SELECT t_warnmeldung.warncellid,t_warnmeldung.urgency,MAX(t_warnmeldung.warngroup_nr + (16000*t_warnmeldung.severity_nr)) AS max_nr
FROM t_warnmeldung
WHERE (t_warnmeldung.warncellid < 400000000 OR t_warnmeldung.warncellid >= 500000000)
GROUP BY t_warnmeldung.warncellid,t_warnmeldung.urgency
ORDER BY t_warnmeldung.warncellid ASC,t_warnmeldung.urgency DESC
)
AS t_max
ON (t_warnmeldung.warngroup_nr + (16000*t_warnmeldung.severity_nr))=t_max.max_nr AND t_warnmeldung.warncellid=t_max.warncellid
ORDER BY t_warnmeldung.warncellid ASC,t_warnmeldung.colorindex DESC
) AS wm
ON t_landkreise.warncellid=wm.warncellid
WHERE (t_landkreise.c_lon >= 9.6714000000000002 AND t_landkreise.c_lat >= 47.2701236046999966 AND t_landkreise.c_lon <= 13.0986605891510006 AND t_landkreise.c_lat <= 47.9926999999999992)
ORDER BY t_landkreise.warncellid ASC
liefert bei PostgreSQL das erwartete Ergebnis. Bei MySQL allerdings nicht, obwohl der Datenbestand derselbe ist und die Tabellen identisch aufgebaut sind.
Ergbnis MySQL (nicht richtig)
Code:
["warncellid"]=>string(9) "108436000", ["group"]=>string(4) "WIND"
["warncellid"]=>string(9) "109172000", ["group"]=>string(4) "WIND"
["warncellid"]=>string(9) "109173000", ["group"]=>string(4) "WIND"
["warncellid"]=>string(9) "109180000", ["group"]=>string(4) "WIND"
["warncellid"]=>string(9) "109182000", ["group"]=>string(4) "WIND"
Ergbnis PostgreSQL (so muss es sein):
Code:
["warncellid"]=>string(9) "108436000", ["group"]=>string(4) "WIND"
["warncellid"]=>string(9) "109172000", ["group"]=>string(4) "THAW"
["warncellid"]=>string(9) "109173000", ["group"]=>string(4) "THAW"
["warncellid"]=>string(9) "109180000", ["group"]=>string(4) "THAW"
["warncellid"]=>string(9) "109182000", ["group"]=>string(4) "THAW"
Es geht mir nicht um die Effektivität der Abfrage, sondern um die unterschiedlichen Ergebnisse.
Schon einmal vielen Dank für die Antworten und schon einmal schöne Weihnachtstage
JueDan