Hallo,
Ich brüte schon seit ein paar Tagen über eine SQL Abfrage die ich nicht richtig hinbekomme.
Hier mal meine Datenbankstruktur:
Tabellen:
Benutzer
Benutzer_Details
Artikel
In der Tabelle benutzer stehen alle Benutzer mit Namen und natürlich einer eindeutigen UserID.
In der Tabelle benutzer_details stehen noch details zu dem Benutzer (PLZ, Telefon etc.) auch hier habe ich wieder eine userid die gleich der userid aus benutzer ist.
In der Tabelle: Artikel stehen artikel die der Benutzer hat, das kann 0, 1 oder mehrere sein. Jeder Artikel hat eine Artikelbezeichnung und natürlich eine Spalte wo "userid" drin steht. Sprich: Pro user der einen Artikel hat wird eine Reihe angelegt.
Jetzt möchte ich eine Abfrage die mir jeden Benutzer (einmal) auflistet der einen oder mehr Artikel hat.
Ich krieg es irgendwie nicht hin...umgangssrachlich müsste das irgendwie so lauten:
SELECT Benutzer.*, Benutzer_Details, Artikel.* FROM Benutzer, Benutzer_Details, Artikel WHERE benutzer.userID = benutzer_details.userID, benutzer_userID = Artikel.userID AND Count(Artikel) > 0
Ich habe es schon mit mehreren verschachtelten Left Joins probiert, aber das Problem bei mehreren Artikeln krieg ich nicht gelößt, sagen wir ein Benutzer hat 3 Artikel, dann soll er ja nur EINMAL in der Liste stehen, aber ich kriegs nur hin, dass er den Benutzer dann drei mal hinschreibt.
Ich brüte schon seit ein paar Tagen über eine SQL Abfrage die ich nicht richtig hinbekomme.
Hier mal meine Datenbankstruktur:
Tabellen:
Benutzer
Benutzer_Details
Artikel
In der Tabelle benutzer stehen alle Benutzer mit Namen und natürlich einer eindeutigen UserID.
In der Tabelle benutzer_details stehen noch details zu dem Benutzer (PLZ, Telefon etc.) auch hier habe ich wieder eine userid die gleich der userid aus benutzer ist.
In der Tabelle: Artikel stehen artikel die der Benutzer hat, das kann 0, 1 oder mehrere sein. Jeder Artikel hat eine Artikelbezeichnung und natürlich eine Spalte wo "userid" drin steht. Sprich: Pro user der einen Artikel hat wird eine Reihe angelegt.
Jetzt möchte ich eine Abfrage die mir jeden Benutzer (einmal) auflistet der einen oder mehr Artikel hat.
Ich krieg es irgendwie nicht hin...umgangssrachlich müsste das irgendwie so lauten:
SELECT Benutzer.*, Benutzer_Details, Artikel.* FROM Benutzer, Benutzer_Details, Artikel WHERE benutzer.userID = benutzer_details.userID, benutzer_userID = Artikel.userID AND Count(Artikel) > 0
Ich habe es schon mit mehreren verschachtelten Left Joins probiert, aber das Problem bei mehreren Artikeln krieg ich nicht gelößt, sagen wir ein Benutzer hat 3 Artikel, dann soll er ja nur EINMAL in der Liste stehen, aber ich kriegs nur hin, dass er den Benutzer dann drei mal hinschreibt.