Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Kein Ergebnis mit COUNT-GROUP BY bei MYSQL 5.7, allerdings bei MYSQL 5.5

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Laienspiel, 6 September 2016.

  1. Laienspiel

    Laienspiel Neuer Benutzer

    Liebe Forenmitglieder,

    aus tiefer Ratlosigkeit schreibe ich mit der Bitte um Hilfe.

    Problemsituation:

    Server:

    Mysql 5.5.49
    PHP 5.4.45


    Abfragen in der Form funktionieren auf der Server-Internetseite tadellos:

    SELECT tabelle_1.spalte_1, tabelle_2.spalte_2,
    COUNT(tabelle_1.spalte_1) AS anzahl
    FROM tabelle_1 LEFT JOIN tabelle_2 ON tabelle_1.spalte_3 = tabelle_2.spalte_1
    WHERE tabelle_1.spalte_3 = '39664'
    GROUP BY tabelle_1.spalte_3



    Localhost:

    Mysql 5.7.13
    PHP 7.0.8


    Die Abfrage liefert kein Ergebnis, gleichwohl die komplette Datenbank von Serverdaten importiert wurde und somit denselben Datenbankbestand hat.


    Analyse:

    Sobald ich den COUNT und GROUP BY-Teil weglasse, liefert die Abfrage Ergebnisse. Alle sonstigen SQL-Abfragen funktionieren auf dem Localhost, zugrundeliegender Code sowohl als auch der Datenbankbestand sind gleich.

    Auf welchem Auge bin ich blind?
     
  2. ukulele

    ukulele Datenbank-Guru

    Dein GROUP BY ist nicht nur nicht vollständig sondern auch noch falsch. Alle Spalten die im Select Teil stehen müssen entweder aggregiert oder gruppiert werden. Die aktuelle MySQL Version erkennt eine falsche Syntax im Gegensatz zu früher.

    Code:
    SELECT tabelle_1.spalte_1, tabelle_2.spalte_2,
    COUNT(tabelle_1.spalte_1) AS anzahl
    FROM tabelle_1 LEFT JOIN tabelle_2 ON tabelle_1.spalte_3 = tabelle_2.spalte_1
    WHERE tabelle_1.spalte_3 = '39664'
    GROUP BY tabelle_1.spalte_1, tabelle_2.spalte_2
     
  3. akretschmer

    akretschmer Datenbank-Guru

    sie sollte einen Fehler liefern.
     
  4. Laienspiel

    Laienspiel Neuer Benutzer

    Vielen Dank für die Antworten.

    Es lag tatsächlich daran, dass nicht alle Spalten im GROUP BY-Teil aufgenommen worden. Da mir nicht klar ist, wie ich mittels einer einzigen Abfrage an die entsprechenden Daten komme, habe ich die Abfrage jetzt in zwei Teile geteilt (erste Abfrage holt mir die Anzahl, die zweite die entsprechenden weiteren Daten).
     
  5. ukulele

    ukulele Datenbank-Guru

    Das kann man durchaus so machen, da spricht nichts dagegen.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden