hawkmaster: If Bedingung in JOIN?

Hallo zusammen,

in einem etwas größeren JOIN kommt folgendes vor:
..
JOIN
install_elements D ON D.InstallElementsID = B.InstallElementsID
JOIN
install_elements E ON E.InstallElementsID = C.InstallElementsID
LEFT JOIN
tech_text F ON  F.TextID = D.TextID
LEFT JOIN
tech_text G ON  G.TextID = E.TextID
..

In der Tabelle "install_elements" gibt es eine Spalte "Status".

Jetzt hätte ich gerne eine Erweiterung des JOIN oder eine Bedinung wie .
Wenn "Status" = "fix" dann nimm Tabelle "tech_text",
wenn "Satus" = "flex" dann nimm Tabelle "tech_text_flex".
es sollte also auch etwas geben wie:

JOIN
install_elements D ON D.InstallElementsID = B.InstallElementsID
JOIN
install_elements E ON E.InstallElementsID = C.InstallElementsID
LEFT JOIN
tech_text_flex F ON  F.TextID = D.TextID
LEFT JOIN
tech_text_flex G ON  G.TextID = E.TextID

Falls so etwas nicht geht muss ich ein paar Sachen umstellen, daher meine Frage.

vielen Dank und viele Grüße
hawk

  1. Servus,

    ich wage zu bezweifeln, dass sich dies mit einem einfachen Statement erschlagen laesst (was sagt denn die Dokumentation deines DBMS, welches du uns verschweigst, dazu?).

    Vielmehr tendiere ich aber dazu zu mutmassen, dass dein Datenbankdesign nicht ganz koscher ist, und du besser an der Stelle aufraeumst. Fuer genaueres fehlen allerdings Details.

    Gruss
    Patrick

    --
    sh:( fo:| ch:? rl:( br:> n4:( ie:% mo:) va:} de:> zu:) fl:| ss:| ls:[ js:|
    1. Hallo Patrick
      danke für deine Hilfe,
      sorry für die fehlende Info.

      ich verwende MySQL,

      Ich kann es nicht komplett erklären.
      Nur soviel:
      Ich habe auf einem Formular dynamische Elemente (daher bei "install_elements" Status =flex". Diese Elemente haben eine Beschriftung mit "dynamischen" Text .der steht "tech_text_flex "
      dieser kann auch wieder gelöscht werden.
      Dann gibt es halt auch festen text der immer da ist und der steht in der Tabelle "tech_text". Dieser text wird für elemente genommen die immer fix auf dem Formular sind.

      vielen Dank und viele Grüße
      hawk

  2. Hello,

    Wenn "Status" = "fix" dann nimm Tabelle "tech_text",
    wenn "Satus" = "flex" dann nimm Tabelle "tech_text_flex".

    ob das ein glückliches Design ist sei dahin gestellt.

    Auf der Hand liegt die Lösung in jedem Fall mit allen Tabellen zu joinen und hinterher zu prüfen wo/ob Treffer entstanden sind.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Vegetarier essen meinem Essen das Essen weg.
    1. Hallo Rouven,

      ob das ein glückliches Design ist sei dahin gestellt.

      ja ich weiss auch nicht so recht. Ich tue mich da etwas schwer beim Design.
      Ich dachte halt ursprünglich es ist besser den "Text" auf zwei Tabellen zu verteilen damit die Datenbank bzw. die Tabellen nicht so groß werden.

      Aber vielleicht wäre es wirklich sinnvoller allen text nur in eine Tabelle zu speichern.

      vielen Dank und viele Grüße
      hawk