Join & Where

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

  • Join & Where

    Irgendwie find ich des Rätsels Lsg. nicht.
    Ich hab eine Abfrage:

    PHP-Code:
    SELECT tab2.name,
                 
    tab2.vorname,
                 
    tab2.tab2.y wert
    FROM    tab2
    RIGHT JOIN  tab1
    ON        
    (tab2.id tab1.id2)
    WHERE tab1.id $id
    AND      wert >= 0
    So nun kommt aber ein Fehler, dass 'wert' in der Abfrage nicht gefunden wurde, bzw. undültig ist. Stell ich Wert in Anführungsstriche, dann werden mir alle Datensäze geliefert und nicht nur die, in denen Wert größer 0 ist.

    Muss ich die Rechnung in der Where-Abfrage wiederholen, oder gibt es eine andere Lösung?

    Merci.
    Für Rechtschreibfehler übernehme ich keine Haftung!

  • #2
    lass dir wert mal testweise ausgeben um zu sehen, was das ist.

    Kommentar


    • #3
      Wenn ich wert aus der Bedingung rauslasse, dann funktioniert das einwandfrei. Nur liefert er mir auch alle Datensätze in denen "wert" Negativ ist.
      Andernfalls kommt:
      Code:
      #1054 - Unbekanntes Tabellenfeld 'wert' in where clause
      Für Rechtschreibfehler übernehme ich keine Haftung!

      Kommentar


      • #4
        Wenn ich wert aus der Bedingung rauslasse, dann funktioniert das einwandfrei. Nur liefert er mir auch alle Datensätze in denen "wert" Negativ ist.
        ist ja nochvollziehbar...

        dann versuch folgendes: mal die einzelnen zeilen mit print_r() ausgeben und mal eine zeile hier posten.

        oder mal tab2.wert benutzen.

        evtl. mal as benutzen. sollte eigentlich nicht erforderlich sein.

        mal mit " rumexperimentieren, beim select.

        alles rein spekulativ.

        Kommentar


        • #5
          PHP-Code:
          Array ( [0] => Name[Name] => NAme[1] => vname[Vorname] => vname [2] => 240 [wert] => 240 
          Hier die Zeile

          Das mit dem rumexperemtieren hate ich schon, bevor ich hier was reingeschrieben hab

          Naja, notfalls lass ich den Wert noch mal in der Bedingung ausrechnen.

          trotdem danke.
          Für Rechtschreibfehler übernehme ich keine Haftung!

          Kommentar


          • #6
            klar!!! Jetzt wo du es sagst. Logisch!

            GEHT DOCH ANDERS GAR NICHT.

            Der kennt "wert" (in dem select) gar nicht, das wird ja erst berechnet, wenn er nen datensatz gefunden hat.

            du MUSST also das zusätzlich in die Bedingung einbauen.

            Kommentar


            • #7
              hehe, oki!

              Danke, sonst hät ich mir hier noch n bissel länger den Kopf zerbrochen. Hab nur gedacht, dass es so auch gehen müsste, weil Wert eigentlich ne ziemlich lange Rechnung ist.

              Danke!
              Für Rechtschreibfehler übernehme ich keine Haftung!

              Kommentar


              • #8
                wenn du ne berechnung für das WHERE vorgesehen hast, vergiss es. nimm dafür einfach HAVING ...

                Code:
                SELECT felder FROM tabelle WHERE feld1 = 'hans' HAVING feld2+feld2 > 0
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar

                Lädt...
                X