Hans: einfache MySql Abfrage - stehe gerade auf dem Schlauch...

Hi,
anscheinend stehe ich gerade auf dem Schlauch, habe eine ganz einfache Abfrage und bekomme nicht das Ergebnis das ich will.
tabelle_1: p_id, p_name,..., g_id
tabelle_2: g_id, g_name,...

Ich will das mir zu jedem ausgewählten Eintrag aus Tabelle 1 der "g_name" in Tabelle 2 angezeigt wird:

$zeit="select p.p_id, p.p_name,..., p.g_id, g.g_name from tabelle_1 p, tabelle_2 g where ... and g.g_id=p.g_id order by p.g_id, p.dob";

Aber diese Abfrage gibt mir jeden ausgewählten Eintrag aus Tabelle 1 mit allen in Tabelle 2 vorkommenden g_namen an (also jeden Datensatz aus Tabelle 1 x-mal, nur jeweils mit anderem g_namen)... Habe auch schon versucht die g.g_id mit auszuwählen, gleiches Ergebniss...
ich sehe den Fehler nicht...

Hoffe ihr könnt mir helfen, danke.

Hans

  1. Hi,
    anscheinend stehe ich gerade auf dem Schlauch, habe eine ganz einfache Abfrage und bekomme nicht das Ergebnis das ich will.
    tabelle_1: p_id, p_name,..., g_id
    tabelle_2: g_id, g_name,...

    Ich will das mir zu jedem ausgewählten Eintrag aus Tabelle 1 der "g_name" in Tabelle 2 angezeigt wird:

    $zeit="select p.p_id, p.p_name,..., p.g_id, g.g_name from tabelle_1 p, tabelle_2 g where ... and g.g_id=p.g_id order by p.g_id, p.dob";

    Aber diese Abfrage gibt mir jeden ausgewählten Eintrag aus Tabelle 1 mit allen in Tabelle 2 vorkommenden g_namen an (also jeden Datensatz aus Tabelle 1 x-mal, nur jeweils mit anderem g_namen)... Habe auch schon versucht die g.g_id mit auszuwählen, gleiches Ergebniss...
    ich sehe den Fehler nicht...

    Hoffe ihr könnt mir helfen, danke.

    Hans

    Du hast dich vertippt... WHERE p.p_id = g.g_id .. Komisch das kein fehler kam

    1. Du hast dich vertippt... WHERE p.p_id = g.g_id .. Komisch das kein fehler kam

      Nein, das stimmt schon so, in tabelle_1 (also p.) gibt es das Feld g_id das auf die tabelle_2 verweist
      Habe also z.B. den Eintrag
      p_id=1
      name=hans
      ...
      g_id=3

      und in tabelle_2
      g_id=3
      g_name=irgendwas

      Ausgabe soll sein
      name=hans, g_name=irgendwas

      Grüße,
      Hans

    2. Hi,
      Problem gelöst. Tja manchmal sieht man den Wald vor lauter Bäumen nicht... lag einfach am Rest der Where abfrage habe da ein paar Datenabgefragt, die sich gegenseitig bedingen und wenn ich diesen Teil komplett in Klammern setzte als eine Where Bedingung dann klappt das natürlich auch....

      Trotzdem Danke an alle,
      Hans

  2. Hallo,

    vielleicht klapt ja:

    SELECT * FROM tabelle_1 LEFT JOIN tabelle_2 ON tabelle_1.g_id = tabelle_2.g_id

    Ich würde übrigens empfehlen immer die MySQL commands groß zu schreiben. Da hat man einen viel besseren überblick finde ich.

    Gruß
    Alex