Priorität von Bedingungen

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

  • Priorität von Bedingungen

    hallo

    jetzt brauch ich mal eure Hilfe

    habe folgende Abfrage:

    select * FROM a LEFT JOIN b ON (b.id=a.id OR b.standard='1')

    b.standard='1' soll nur ausgeführt werden wenn b.id=a.id nicht zutrifft


    ich hoffe mir kann jemand helfen

  • #2
    XOR

    Kommentar


    • #3
      für das erste Join funzt es aber beim 2. will er nicht mehr mit dem XOR

      FROM
      a, b
      LEFT JOIN
      c ON (c.id=b.id XOR c.standard='1')
      LEFT JOIN
      d ON (d.id=b.id XOR d.standard='1')

      Kommentar


      • #4
        Doch, er will. Der Fehler liegt irgendwo anders, aber mangels Informationen kann man nicht viel darüber sagen.

        Was soll eigentlich das "a, b"? Vermischst du Theta-Style Joins mit SQL-Joins? Das ist furchtbar. Außerdem erzeugst du damit ein Kreuzprodukt.

        Kommentar


        • #5
          a, b, c und d sind die Tabellen

          ok ich setz mal die ganze Abfrage rein

          SELECT
          eu.*,
          eg.*,
          ed.*,
          et.*
          FROM
          easy_".$d."_gruppen eg, easy_".$d."_user eu
          LEFT JOIN
          easy_".$d."_design ed ON (ed.designid=eu.designid XOR ed.standard='1')
          LEFT JOIN
          easy_".$d."_template et ON (et.templateid=eu.templateid XOR et.standard='1')
          WHERE
          eu.userid='".$userid."'
          AND eu.passwort='".$passwort."'
          AND eu.useraktiv='1'
          AND eg.gruppeid=eu.gruppeid
          LIMIT 1

          Kommentar


          • #6
            Bitte mach aus dem Theta-Style-Join einen sauberen Join. Sowas ist einfach furchtbar zu lesen.

            Kommentar


            • #7
              weiss nicht genau was du meinst

              so wie es aussieht lädt er wenn die Bedingung nicht zutrifft die 2. Bedingung, trifft aber die erste Bedingung zu lädt er nichts aus der Tabelle

              Kommentar


              • #8
                XOR funktioniert. Es muss an den Daten liegen oder du interpretierst das Ergebnis falsch.

                Theta-Style-Joins sind die hässlichen Dinger mit den Kommas.

                Pfui: SELECT * FROM tabelle_a, tabelle_b

                Kommentar

                Lädt...
                X