reihenfolge der befehle

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

  • reihenfolge der befehle

    hallo gemeinschaft

    habe folgendes statement - benötige aber noch eine where clause

    - jetzt weiss ich nur nicht, wohin damit - habe es schon überall reinkopiert mit unterschiedlichen fehlermeldungen

    es muss rein where cn != ''

    könnt ihr mir sagen wo

    PHP-Code:

    $sql 
    "select co.contract_summe as summe, cl.client_name as clname,";
    $sql .= " cl.client_vorname as conname, co.contract_id, co.contract_client_id,";
    $sql .= " co.contract_consult_id, co.contract_antrag, co.contract_new as cn";
    $sql .= " FROM contract co left join client cl ON co.contract_client_id = cl.client_id";
    $sql .= " left join consult con ON co.contract_consult_id = con.consult_id order by clname"

  • #2
    kombiniere die beiden:
    http://dev.mysql.com/doc/mysql/en/SELECT.html
    http://dev.mysql.com/doc/mysql/en/JOIN.html
    dann weißt du, wohin damit

    Kommentar


    • #3
      ich habs so gemacht
      PHP-Code:
      $sql "select co.contract_summe as summe, cl.client_name as clname,";
      $sql .= " cl.client_vorname as conname, co.contract_id, co.contract_client_id,";
      $sql .= " co.contract_consult_id, co.contract_antrag, co.contract_new as cn";
      $sql .= " FROM contract co where cn != '' left join client cl ON co.contract_client_id = cl.client_id";
      $sql .= " left join consult con ON co.contract_consult_id = con.consult_id order by clname"
      dann bekomme ich diese meldung
      You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'left join client cl ON co.contract_client_id = cl.client_id left

      Kommentar


      • #4
        Original geschrieben von jhaustein
        dann bekomme ich diese meldung
        You have an error in your SQL syntax. [color=red]Check the manual[/color] that corresponds to your MySQL server version for the right syntax to use near 'left join client cl ON co.contract_client_id = cl.client_id left
        die Fehlermeldung empfiehlt ja auch das, was ich schon empfohlen habe, also tu das bitte.

        Kommentar


        • #5
          die anleitung empfiehlt das

          mysql> select tabelle1.* from tabelle1
          LEFT JOIN tabelle2 ON tabelle1.id=tabelle2.id
          where tabelle2.id is NULL;

          ich habe nun das gemacht

          PHP-Code:
          $sql "select co.contract_summe as summe, cl.client_name as clname,";
          $sql .= " cl.client_vorname as conname, co.contract_id, co.contract_client_id,";
          $sql .= " co.contract_consult_id, co.contract_antrag, co.contract_new as cn";
          $sql .= " FROM contract co left join client cl ON co.contract_client_id = cl.client_id where cn != ''";
          $sql .= " left join consult con ON co.contract_consult_id = con.consult_id order by clname"
          un dbekomme das
          You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'left join consult con ON co.contract_consult_id = con.consult_i

          Kommentar


          • #6
            Ist das denn wirklich so schwer? Du hast den Syntax von SELECT:
            SELECT
            [ALL | DISTINCT | DISTINCTROW ]
            [HIGH_PRIORITY]
            [STRAIGHT_JOIN]
            [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
            [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
            select_expr, ...
            [INTO OUTFILE 'file_name' export_options
            | INTO DUMPFILE 'file_name']
            [FROM [color=red]table_references[/color]
            [WHERE where_definition]
            [GROUP BY {col_name | expr | position}
            [ASC | DESC], ... [WITH ROLLUP]]
            [HAVING where_definition]
            [ORDER BY {col_name | expr | position}
            [ASC | DESC] , ...]
            [LIMIT {[offset,] row_count | row_count OFFSET offset}]
            [PROCEDURE procedure_name(argument_list)]
            [FOR UPDATE | LOCK IN SHARE MODE]]
            und dann wurde gesagt:
            MySQL supports the following JOIN syntaxes for the [color=red]table_references[/color] part of SELECT statements
            schau jetzt mal deine Abfrage an.

            Kommentar


            • #7
              Die Where-Klausel muss nach dem letzen On -Clause rein

              PHP-Code:
              $sql "select co.contract_summe as summe, cl.client_name as clname,";
              $sql .= " cl.client_vorname as conname, co.contract_id, co.contract_client_id,";
              $sql .= " co.contract_consult_id, co.contract_antrag, co.contract_new as cn";
              $sql .= " FROM contract AS `co` left join client cl ON (co.contract_client_id = cl.client_id)";
              $sql .= " left join `consult` AS `con` ON (`co`.`contract_consult_id` = `con`.`consult_id`) WHERE `cn` != '' order by clname"
              Allerdings ist eine Abfrage mit != immer schlecht, weil dann KEIN Index genutzt werden kann.
              Versuch mal es positiv zu formulieren mit WHERE XX = '
              Ausserdem solltest Du Tabellennamen und Felder in `` setzen. Beschleunigt die Abfragen, weil der SQL-Server dann nicht suchen muss, ob es sich um Befehle handelt.

              Wenn die Felder im On-Clause gleich heissen, reicht auch ein
              USING (`client_id`) STATT ON (co.contract_client_id = cl.client_id)
              Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

              Kommentar


              • #8
                ich schaue mir die deutsche seite an - weiss aber nicht, was ich da ändern muss

                :-(

                Kommentar


                • #9
                  laut manual:

                  SELECT
                  FROM
                  (JOIN optional)
                  WHERE

                  problem?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Irgendwie ist hier schon seit Ewigkeiten ein Thread gepinnt welcher sich mit den Joins befasst.......

                    http://www.php-resource.de/forum/sho...threadid=28292

                    Aber auf die Idee einfach mal zu lesen bzw. zu suchen ist soooo schwierig

                    [color=blue]MfG Payne_of_Death[/color]

                    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                    [color=red]Merke:[/color]
                    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                    Murphy`s Importanst LAWS
                    Jede Lösung bringt nur neue Probleme
                    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                    Kommentar


                    • #11
                      Hallo Du Spezialist, guck mal unter fehlermeldung bei where abfrage
                      Das ist Dein eigenes Posting von 5.11.
                      Klingelts??

                      Es liegt nicht an der Reihenfolge sondern mal wieder an Deinem alias im
                      WHERE-Clause.

                      Man sollte aus Fehler lernen und sie nicht wiederholen!
                      Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

                      Kommentar


                      • #12
                        ich hab das alias nun abgeändert - leider gleicher fehler - und nu

                        PHP-Code:
                        $sql "select co.contract_summe as summe, cl.client_name as clname,";
                        $sql .= " cl.client_vorname as conname, co.contract_id, co.contract_client_id,";
                        $sql .= " co.contract_consult_id, co.contract_antrag,  ";
                        $sql .= " FROM contract co left join client cl ON co.contract_client_id = cl.client_id ";
                        $sql .= " left join consult con ON co.contract_consult_id = con.consult_id where co.contract_new != '' order by clname"
                        You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM contract co left join client cl ON co.contract_client_id =

                        Kommentar


                        • #13
                          Hast Du wohl ein Komma zu viel vor FROM
                          Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

                          Kommentar


                          • #14
                            danke - daran lags -

                            Kommentar

                            Lädt...
                            X