Zum Inhalt springen

select anweisung in MySql


SwordMaster

Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...