Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Wert aus einer anderen Tabelle holen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Wert aus einer anderen Tabelle holen

    Guten Abend nach Deutschland

    Ich habe folgendes Problem: ich habe zwei Tabellen (mitglieder, mitglieder_funktionen). Die Tabelle "mitglieder" hat unter anderem das Feld "TrainerFunktion". Dort steht eine Zahl drin. In der Tabelle "mitglieder_funktionen" gibt es die Felder "ID" und "Funktion". Die ID entspricht der Zahl in "mitglieder.TrainerFunktion". Das Feld "mitglieder.Trainer" beinhaltet entweder 0 oder 1. D.h. 1 = ist Trainer und 0 = ist kein Trainer.

    Nun habe ich folgende Abfrage gemacht:

    Code:
    Select TrainerFunktion, Vorname, Name from mitglieder 
    join mitglieder_funktionen on mitglieder.TrainerFunktion = mitglieder_funktionen.ID 
    where mitglieder.Trainer = 1 and (mitglieder.TrainerMannschaft = 1 or mitglieder.TrainerMannschaft2 = 1) 
    order by mitglieder.Name;
    Als Resultat erhalte ich 4 Trainer der 1. Mannschaft des Vereins - jedoch alle immer doppelt und im Feld TrainerFunktion ist eine Zahl statt der Name der Funktion.

    Warum kommen die Datensätze doppelt? ... und warum erhalte ich nicht den Wert aus "mitglieder_funktionen.Funktion" zurück?


  • #2
    Weil du den default-join nutzt. Weiß grade nicht genau welcher das ist, glaube cross-join. Was du willst ist ein "LEFT JOIN".
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Danke tkausl für den Tipp. Habs jetzt abgeändert auf:

      Code:
      Select mitglieder.TrainerFunktion, mitglieder.Vorname, mitglieder.Name, mitglieder_funktionen.Funktion 
      from mitglieder left join mitglieder_funktionen on mitglieder.TrainerFunktion = mitglieder_funktionen.ID 
      where mitglieder.Trainer = 1 and (mitglieder.TrainerMannschaft = 1 or mitglieder.TrainerMannschaft2 = 1) 
      order by mitglieder.Name;
      Jetzt kommen die Funktionen. Danke.

      Kommentar

      Lädt...
      X