mysql: LEFT JOIN-Frage
Nuke
- datenbank
Hab ne Tabelle die meine Kunden enthält.
Dann hab ich noch eine Session-Tabelle.
Nun möchte ich bei der Kunden-Abfrage auch abfragen OB ein Kunde online ist.
Das dachte ich mir irgendwie so:
SELECT kunden.name FROM kunden LEFT JOIN sessions...
leider bleibe ich an diesem Punkt hängen und weiss nicht weiter.
Hello,
dein Problem klingt aber verdächtig nach diesem Thread. Wenn dem so ist, bitte unterlasse Doppelpostings, die Frage könnte dort genau so weiter behandelt werden.
Woran scheiterst du denn bei dem Join? Hast du dir mal die Feature-Artikel in SELFHTML angeschaut? Da findest du Beispiele, wie das Ergebnis eines LEFT JOINS aussieht, falls kein passender Datensatz gefunden wird (Stichwort NULL). Zusammenführen möchtest du die Tabellen vermutlich über die User-ID!?
MfG
Rouven
Naja, in diesem anderen Thread gabs nur einen Link zu einer Seite die ich nicht verstehe. Sorry kann nicht jeder Informatik studieren.
Außerdem antwortet da jetzt keiner mehr drauf wenn ich dort reinschreibe weil der Post viel zu alt ist und keiner scrollt soweit runter.
hi,
Naja, in diesem anderen Thread gabs nur einen Link zu einer Seite die ich nicht verstehe. Sorry kann nicht jeder Informatik studieren.
Dafür musst du, unabhängig davon das hier die wenigsten Informatik studiert haben oder studieren, auch kein Informatiker sein. Ich hab ja auch keine KFZ-Ausbildung gemacht und mir trotzdem angeeignet meine Reifen, mein Öl und ggf. mal nen Keilriehmen oder Abblendlichter meines Wagens zu wechseln ;-)
Wenn du für irgendeinen Bereich, den du ja anscheinend auch beruflich brauchst (Kundentabelle), ein Instrument benutzen musst - musst du halt in den sauren Apfel beissen und dich einarbeiten. Oder du musst es jemand anderes machen lassen...
Ich weiss nicht was für eine Seite dir gepostet wurde, aber SQL und Joins sind nun wirklich kein Hexenwerk. Du kannst dir z.B. bei einem Left-Join einfach so vorstellen: die "linke" Tabelle (also die vor dem left join) ist Ausgangsmenge und Daten aus der "rechten" Tabelle werden nur dazugeholt, wenn auch passene (über die ON-Bedingung definiert) Sätze in der Ausgangstabelle vorhanden sind.
Konkret wäre das bei dir in etwa sowas:
select User.Name, Session.Id
from User left join Session on User.Id=Session.UserId
hier würden also alle Usernamen aus der Usertabelle angezeigt UND, falls in der Sessiontabelle vorhanden, auch die SessionId. D.h. keine SessionId -> nicht online...oder so ähnlich ;-)
Gruss,
Seppel
Hi
ich brauche das nicht beruflich. Ich habe das so beschrieben, damit ihr es auch versteht! Eigentlich ist es nochetwas komplexer. Mit deiner letzten Antwort hast du aber mein Problem gelöst und ich bedanke mich herzlich für deine Hilfsbereitschaft.
In einem anderen Threads gehts jetzt weiter mit SQL_CALC_FOUND_ROWS() das jetzt in diesem Zusammenhang Probleme bereitet.
Außerdem antwortet da jetzt keiner mehr drauf wenn ich dort reinschreibe weil der Post viel zu alt ist und keiner scrollt soweit runter.
Quatsch, du kennst die Usereinstellungen für registrierte Benutzer nicht.
Struppi.