problem bei select

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

  • problem bei select

    PHP-Code:
    SELECT kostenstellen.BeschreibungROUND(
    SUM((koppeltabks.prozent /100 ) * zimmer.Gesamtgrundflaeche), 2) AS Fläche
    FROM kostenstellen LEFT JOIN 
    (koppeltabks INNER  JOIN zimmer ON koppeltabks.RaumID=zimmer.RaumID 
    ON kostenstellen.Kennung=koppeltabks.Kennung Group by kostenstellen.Beschreibung 
    bringt mir die fehlermeldung, dass ein fehler hinter dem left join aufgetreten ist. das komische daran ist, dass das ganze auf meinem lokalen server funktioniert, doch dort wo es letztendlich laufen soll nicht. das wird dann wohl an unterschiedlichen mysql-versionen liegen, doch kann ich die andere nicht verändern. kennt jemand das problem und wie ich etwas dagegen tun kann?

    danke
    ich geh zum lachen in den keller

  • #2
    Würde mich wundern, wenn bei Dir lokal laufen würde,bei der Syntax
    PHP-Code:
    LEFT JOIN Table ON bedingung USING fieldname
    INNER JOIN 
    ... 
    Siehe auch http://dev.mysql.com/doc/refman/5.0/en/join.html
    join_condition:
    ON conditional_expr
    | USING (column_list)
    EDIT:
    sorry, hab wohl nichts genau hingeschaut. Dürfte eher an der Verschachtelung der Queries liegen, da Subqueries erst an mysql 4.1.x gehen.


    Kannst Du die JOINs nicht nacheinander machen? Dürfte doch aufs selbe rauskommen, oder
    Zuletzt geändert von thommyk; 01.12.2005, 09:21.
    Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

    Kommentar


    • #3
      was ist mit
      PHP-Code:
      SELECT kostenstellen.BeschreibungROUND(
      SUM((koppeltabks.prozent /100 ) * zimmer.Gesamtgrundflaeche), 2) AS Fläche
      FROM kostenstellen LEFT JOIN 
      koppeltabks
      ON 
      (kostenstellen.Kennung=koppeltabks.Kennung)
      INNER  JOIN zimmer ON (koppeltabks.RaumID=zimmer.RaumID
      Group by kostenstellen.Beschreibung 
      ?
      Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

      Kommentar


      • #4
        Dürfte eher an der Verschachtelung der Queries liegen, da Subqueries erst an mysql 4.1.x gehen.
        so etwas konnte ich mir schon denken, auch das es an der subquery liegt. tja, dein zweiter vorschlag passt nicht ganz, denn ich brauche zuerst den INNER JOIN von koppeltabks und zimmer und dann darauf den LEFT JOIN. an der reihenfolge lässt sich nix drehen. trotdem danke
        ich geh zum lachen in den keller

        Kommentar


        • #5
          dann drehs doch um
          PHP-Code:
          SELECT kostenstellen.BeschreibungROUND(
          SUM((koppeltabks.prozent /100 ) * zimmer.Gesamtgrundflaeche), 2) AS Fläche
          FROM koppeltabks
          INNER  JOIN zimmer ON 
          (koppeltabks.RaumID=zimmer.RaumID
          LEFT JOIN kostenstellen
          ON 
          (kostenstellen.Kennung=koppeltabks.Kennung)
          Group by kostenstellen.Beschreibung 
          Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

          Kommentar


          • #6
            tja leider ist das nicht ganz so einfach. denn das problem ist, ich brauche kostenstellen mit LEFT JOIN auf ... und nicht ... mit LEFT JOIN auf kostenstellten. da sieht das ergebnis dann ganz anders aus, obwohl dann sollte es ja right join sein. ich probiere es gleich nochmal aus. danke
            ich geh zum lachen in den keller

            Kommentar


            • #7
              jo, rigth join reist die umstellung wieder raus. danke, funktioniert.
              ich geh zum lachen in den keller

              Kommentar

              Lädt...
              X