Ich habe eine Abfrage, die in der Gruppierung von der höchsten Ordnung in Ordnung funktioniert. Was ich realisiert habe, ist seine Lage, die ids
in Ordnung, aber die Werte des vmsg
Feld zu holen ist, entspricht nicht dem des id
.Die Gruppenabfrage berücksichtigt keine entsprechenden Werte
Zum Beispiel ID von 28
entspricht mit einem vsmg
'Hallo', aber nachdem Sie die Abfrage ID 28
ausführen, wählt einen anderen Wert.
Dies ist, wie es aus dem Backend
und mit meinem Skript
SELECT
MAX(id) as id, vmsg, sender_id, fname, lname, profile_pix, profile.profile_id
FROM
chats
LEFT JOIN
profile
ON
chats.sender_id = profile.profile_id
WHERE
reciever_id = 1
GROUP BY
(sender_id)
ich aussieht:
ich die max bekommen ids
aber der vmsg
Werte stimmen nicht überein.
Lieber, wenn Sie Gruppe gelten durch und Aggregatfunktion, wenn Sie Skalarfelds verwenden nicht Gruppe, die in von MySql die ersten nehmen. –
Diese GROUP BY ist ungültig. Wird bei neueren MySQL-Versionen einen Fehler verursachen (außer im Kompatibilitätsmodus) oder unvorhersehbare Ergebnisse mit älteren Versionen zurückgeben. Die allgemeine GROUP BY-Regel besagt: Wenn eine GROUP BY-Klausel angegeben ist, muss jede Spaltenreferenz in der SELECT-Liste entweder eine Gruppierungsspalte identifizieren oder das Argument einer set-Funktion sein. – jarlh
Anstatt 'MAX()' versuchen Sie 'ORDER BY' auf ID –