Hallo,
also ein besserer Titel ist mir keiner eingefallen, das ist auch verdammt schwer. *g*
Ich habe eine
MySQL-Tabelle mit u.a. diesen Spalten:
id (einmalig),
article_id (kann gleiche Werte enthalten) und
user_id (kann ebenfalls gleiche Werte enthalten)
Nun kann der Inhalt beispielsweise so aussehen:
Code:
id article_id user_id
[b][color=#ff0000]1 1 1[/color][/b]
2 1 1
3 1 4
[b][color=#ff0000]5 2 1[/color][/b]
6 2 2
7 2 2
10 3 2
11 3 1
[b][color=#ff0000]12 4 1[/color][/b]
14 4 6
15 6 2
So schön wird das übrigens nicht geordnet sein, sondern eher wild durcheinander.
Nun möchte ich die Anzahl der Datensätze ermitteln, die für eine bestimmte User-ID zutreffen (das ist ja kein Problem). Jedoch soll pro Artikel-ID-Block nur der älteste Eintrag überprüft werden (kleinste
id).
Ein Beispiel:
User mit ID 1
Zurückgegeben sollen nun die rot markierten Datensätze bzw. die Anzahl, in dem Fall 3.
Die Anzahl interessiert mich eher, aber es wäre auch schön, wenn man (mit einer 2. Abfrage) die Datensätze selbst zurückgeben könnte.
Mein Problem besteht im Sortieren der einzelnen Artikel-ID-Blöcke. Ich habe schon mit
MIN,
DISTINCT,
GROUP BY & Co. herumprobiert, doch kam immer irgendwas falsches zurück, deshalb schreibe ich meine Fehlversuche hier gar nicht erst hin. Es wären ohnehin zu viele.
Und alles Auslesen und dann mit PHP sortieren möchte ich auch nicht bzw. nur im aller äußersten Notfall.
Könnt ihr mir sagen wie das geht bzw. ob es überhaupt rein mit
MySQL möglich ist ohne zig Abfragen zu benötigen?
Grüße, Matze