Announcement

Collapse
No announcement yet.

Abfrage über 3 Tabellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Abfrage über 3 Tabellen

    Hallo Leute

    ich habe 3 Tabellen und möchte nun die user_id vorgeben und die forum_ids zurückbekommen.

    fahrer
    fahrer_kurz | fahrer_lang
    MS | M. Schumacher
    RS | R. Schumacher
    MW | M. Webber

    forum
    forum_id | forum_name
    5 | M. Schumacher
    19 | R. Schumacher
    32 | M. Webber

    fan
    fahrer_kurz | user_id
    MS | 17
    RS | 17
    MS | 18

    meine lösung finde ich etwas unglücklich:

    SELECT
    forum.forum_id
    FROM forum
    LEFT OUTER JOIN fahrer
    ON forum.forum_name=fahrer.fahrer_lang
    LEFT OUTER JOIN fan
    ON fan.fahrer_kurz=fahrer.fahrer_kurz
    WHERE user_id=17

    kann mir jemand helfen.

    lg Meike


    Wenn ich z.b. user_id= 17 angebe, soll forum_id array{5,19} auskommen.
    Zuletzt editiert von Meike; 21.12.2009, 12:14.

  • #2
    SELECT
    f.forum_id
    FROM forum AS f
    LEFT OUTER JOIN fahrer AS p
    ON f.forum_name=p.fahrer_lang
    LEFT OUTER JOIN fan
    USING (fahrer_kurz)
    WHERE user_id=17

    so ginge es vielleicht, ist das ok, oder sollte man das anders machen?

    Comment


    • #3
      oder sollte man das anders machen?
      Ein anderes Tabellenmodel wählen. Würde hier nicht die Notwendigkeit sehen das auf 3 Tabellen zu verteilen und die Daten redundant darin zu haben
      Christian

      Comment


      • #4
        naja, habe nur Tabellenauszüge geschrieben.

        Denke es macht schon Sinn, das Forum für sich zu lassen, und die Fahrerdatenbank auch die Userzuweisung ist in der Tat nicht sehr schön gemacht, aber hoffe es geht auch.

        Dachte man könnte die Anweisung vielleicht noch kürzer machen. Hatte erst an ein Subselect gedacht, denke aber der doppelte join ist auch ok

        Comment

        Working...
        X