Announcement

Collapse
No announcement yet.

JOIN abhängig von Wert einer Spalte

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

  • JOIN abhängig von Wert einer Spalte

    Hallo,

    ich bin gerade dabei ein CMS zu schreiben. Man kann Seiten erstellen, Artikel schreiben und Formulare generieren. Die Relation wird in einer extra Tabelle abgespeichert. Vereinfacht sieht die Struktur so aus:


    PHP Code:
    Tabelle Seiten:

       
    id      weitere
       1         bla


    Tabelle Artikel
    :

       
    id      weitere
       1         bla


    Tabelle Formulare

       id      weitere
       1         bla


    Tabelle Seiten_artikel_relation

       id   seiten_id   artikel_id   formular_id
       1          1         1            0
       2          1         0            1


    Abfrage bisher
    :

    $query 'SELECT
                    a.headline, a.intro,
                    a.text, a.created,
                    a.author
                 FROM
                     seite_artikel_relation AS sar
                 LEFT JOIN
                     artikel AS a
                 ON
                     sar.artikel_id = a.id
                 WHERE
                     ( sar.seiten_id = '
    .$page_id.' )
                 AND ... (usw.) 
    Nun möchte ich die Abfrage so erweitern dass auch Formulare in die jeweilige Seite eingebunden werden können. Das heißt wenn artikel_id > 0 muss ein JOIN auf die Tabelle Artikel stattfinden und wenn formular_id > 0 ist auf die Tabelle Formulare. Ist das möglich? Für sachdienliche Hinweise wäre ich dankbar!

    Gruß, tobias

  • #2
    Hi

    das wirst du wohl mit einzelnen Abfragen lösen müssen, da mir nicht bekannt ist das man if Konstrukte in einem Select einbauen kann.

    Sprich abfragen was in deiner relations tabelle steht und dann mit php entscheiden was gemacht werden soll.

    Comment


    • #3
      Hallo,

      erstmal ein verspätetes Danke für die Hilfe. Falls jemand auf das gleiche Problem stößt, ich habe es mit UNION gelöst.

      Gruß, toby

      Comment

      Working...
      X