Gruppierte, neuste Einträge

DerNeueHier

Neuer Benutzer
Beiträge
2
Hallo an alle,

erstmal danke schon jetzt für eure Hilfe. Ich würde mich in diesem Forum nicht anmelden wenn ich nicht total verzweifelt wäre.
Es geht um insgesamt 3 Tabellen. (Anhang)

gamelist.bookmarks = Wenn ein User sich für Game X interessiert, wird hier die game_id gespeichert, die der Nutzer interessant findet.
gamelist.games = Simple Tabelle um allen Games eine einheitliche ID zuzuweisen.
gamelist.updates = Hier werden automatisch alle änderungen bzw. neuen Versionen eines Games aufgelistet.

Nun ist mein Vorhaben:
Der Nutzer soll all seine, als Bookmark's ausgewählten, Games sehen. Natürlich mit dem neusten Update.

Meine aktuelle SQL Abfrage kommt zumindest schonmal soweit, dass alle Games welche als Bookmark gekennzeichnet wurden, aufgelistet werden. Allerdings (und hier komme ich nicht weiter) nur die ältesten Updates. Nicht die neuen. Obwohl ich ja genau diese angezeigt haben möchte. Ich bin zumindest schon so weit und weiß, ich muss hier mit einer doppelten SQL Abfrage arbeiten. Aber wie das genau funktioniert.... Dafür brauche ich dich/euch!

Wenn ich irgendwelche Informationen vergessen haben sollte, gebt mir bitte bescheid! :)

Gruß
DerNeueHier

Meine SQL-Abfrage:
SELECT
`title`,
`type`,
`version`,
`date`,
`updates`.`game_id`,
FROM
`updates`
JOIN `bookmarks` ON `updates`.`game_id` = `bookmarks`.`game_id`
JOIN `user` ON `user`.`user_id` = `bookmarks`.`user_id`
WHERE
`user`.`user_id` = '1'
GROUP BY
`updates`.`game_id`
ORDER BY
`updates`.`date` DESC
 

Anhänge

  • Anmerkung 2020-09-09 123749.png
    Anmerkung 2020-09-09 123749.png
    15,3 KB · Aufrufe: 5
Werbung:
Schau Dir mal an, was Group By bewirkt, vor allem, was by mySQL alles damit schief gehen kann.
Verstehe, wofür Group By da ist und wie es funktioniert!

Hilfe: Was soll dabei rauskommen, wenn man nach einer eindeutigen ID gruppiert?
Hilfe2: Ergebnis ist identisch zur Ausgangslage, bereits eindeutige Werte können (nach sich selbst) nicht weiter gruppiert werden.
Hilfe3: Im vorigen Thread (und 1000en anderen) wird das (zufällig) erklärt
Leider machen es die Fehler in mySQL nicht einfach für Neulinge. Aber mal mit einer kleinen Tabelle mit ein paar Werten mit Group By üben, schadet nicht. Eine fehlerhafte DB schadet schon eher.
 
Zuletzt bearbeitet:
Ich glaube, dir ist ein Fehler untergangen (Oder von mir blöd formuliert). Eine Unique ID zu gruppieren macht absolut keinen Sinn, richtig. Allerdings ist nur die Spalte `games`.`game_id` einzigartig. Nicht aber die Spalte `updates`.`game_id`, nachder ich gruppiert habe.

Es gibt ein eindeutiges Game (`games`.`game_id`), jedoch von diesem Game mehrere Updates (`updates`.`game_id`) nach diesen gruppiere ich, um ein einzelnes Element der Updates "heraus zu fischen", welches jedoch immer das älteste ist.
 
Werbung:
Ok, was erwartest Du, soll geschehen, wenn Du die nicht eindeutige game_id gruppierst? Es kommt maximal eine Liste eindeutiger Game_ID heraus.
Das interessiert aber ja gar nicht, sondern die neuesten Datumswerte oder?
Hast Du mal gegoogelt, wie group by verwendet wird? Hast Du mal den Group By Fehler von mySQL gesucht der Dir ja hier in die Hacken läuft?
 
Zurück
Oben