Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum unterscheiden sich SELECT-Ergebnisse zwischen mysql und sqlite?

Ich habe versucht, mit einigen Abfragevarianten herumzuspielen.

Es scheint, als hätte sqlite Fehler bei der Verwendung von zuvor deklarierten Feldern in einem verschachtelten HAVING Ausdrücke.

In Ihrem Beispiel avg1 unter Zweitbesitz ist immer gleich 5,0

Siehe:

select T1.id, avg(T1.score) avg1
from foo T1
group by T1.id
having not exists (
    SELECT 1 AS col1 GROUP BY col1 HAVING avg1 = 5.0);

Dieser gibt nichts zurück, aber die Ausführung der folgenden Abfrage gibt beide Datensätze zurück:

...
having not exists (
    SELECT 1 AS col1 GROUP BY col1 HAVING avg1 <> 5.0);

Ich kann keinen ähnlichen Fehler in der sqlite-Ticketliste finden .