SwordMaster Geschrieben 13. Oktober 2003 Teilen 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 13. Oktober 2003 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
beetFreeQ Geschrieben 13. Oktober 2003 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SwordMaster Geschrieben 13. Oktober 2003 Autor Teilen Geschrieben 13. Oktober 2003 perfekt, eingegeben und schon gehts genauso wie gewollt.... :uli :uli Thx SwordMaster Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.