SwordMaster Geschrieben 13. Oktober 2003 Geschrieben 13. Oktober 2003 Ich habe da ein Problem mit einer Sql Anweisung auf einer MySql Datenbank! folgendes: ich habe folgende Tabellen: Tabelle ZusatzGerichte: mit den Spalten "ZNr"(primärschlüssel) und "Beschreibung" Tabelle Wunsch: mit den Spalten "ZNr" und "PatNr" und "Menge" jetzt bräuchte ich eine selectabfrage die mir ALLE Gerichte EINMAL zurückgibt, und falls Patient 1 (PatNr=1) das Gericht hat, soll auch gleich die Menge dabeistehn d.h. ich fräuchte folgende spalten als ergebnis. ZNr|Beschreibung|PatNr|Menge Habs bereits folendermaßen probiert SELECT ZusatzGerichte.ZNr, Beschreibung, PatNr, Menge FROM ZusatzGerichte LEFT OUTER JOIN PatientenWunsch ON PatientenWunsch.ZNr=ZusatzGerichte.ZNr ABER: falls mehrere verschiedene Patienten Gericht Nr 1 bestellt haben bekomme ich ZNr 1 öfter. mit WHERE (PatNr = 1 OR PatNr IS NULL) bekomme ich ZNr 3 z.b. nicht mehr wenn ein anderer Patient dieses Gericht bestellt hat Ich bräuchte aber alle Gerichte auf alle fälle, und dann halt noch die info ob Patient 1 das gericht hat, und wenn ja, welche menge... aber ich bekomms nicht hin.... Vielleciht kann mir einer von euch helfen?
geloescht_JesterDay Geschrieben 13. Oktober 2003 Geschrieben 13. Oktober 2003 Original geschrieben von SwordMaster Habs bereits folendermaßen probiert SELECT ZusatzGerichte.ZNr, Beschreibung, PatNr, Menge FROM ZusatzGerichte LEFT OUTER JOIN PatientenWunsch ON PatientenWunsch.ZNr=ZusatzGerichte.ZNr Ich kapiere den Sinn hinter dem ganzen nicht so ganz, aber probier es mal so: SELECT ZusatzGerichte.ZNr, Beschreibung, PatNr, Menge FROM ZusatzGerichte LEFT OUTER JOIN PatientenWunsch ON (PatientenWunsch.ZNr=ZusatzGerichte.ZNr AND PatNr=1) damit müssten eigentlich die Daten vom Patientenwunsch (also Menge und PatNr) für die Gerichte von PatNr=1 angezeigt werden, für alle anderen sollte es leer bleiben.
beetFreeQ Geschrieben 13. Oktober 2003 Geschrieben 13. Oktober 2003 So sollte es gehen: SELECT ZusatzGerichte.ZNr, Beschreibung, PatNr, Menge FROM ZusatzGerichte LEFT OUTER JOIN PatientenWunsch ON PatientenWunsch.ZNr=ZusatzGerichte.ZNr AND PatNr = 1 so bekommst du alle Sätze aus der Tabelle ZusatzGerichte, aber nur die Mengen der Gerichte, die Patient 1 bestellt hat. Eine Where-Klausel geht über die schon zusammengejointe Menge an Datensätzen, mit weiteren Einschränkungen im Join selbst, kannst du aber weiter einschränken, welche Datensätze aus der zweiten Tabelle dazugejoint werden. edit: Huch, da war ich wohl einen Tick zu spät
SwordMaster Geschrieben 13. Oktober 2003 Autor Geschrieben 13. Oktober 2003 perfekt, eingegeben und schon gehts genauso wie gewollt.... :uli :uli Thx SwordMaster
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden