Nicht MySQL 3 konform?

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

  • Nicht MySQL 3 konform?

    Hallo @ all,

    kann es sein, dass folgender Code nicht unter MySQL 3 lauffähig ist? Wenn ja, was muss ich ändern und das selbe Resultat zu erhalten?
    SELECT * from comenius_newsletter_articles AS t1 INNER JOIN comenius_newsletter_categories AS t2 INNER JOIN comenius_user as t3 ON t1.category=t2.ID and t1.ID=$ID and t1.UID=t3.ID
    Unter MySQL 4 läuft diese Abfrage ohne Probleme und liefert mir auch das gewünschte Resultat. Unter MySQL 3 bekomme ich folgenden Fehler:
    SQL-Befehl :

    SELECT *
    FROM comenius_newsletter_articles AS t1
    INNER JOIN comenius_newsletter_categories AS t2
    INNER JOIN comenius_user AS t3 ON t1.category = t2.ID AND t1.ID = 1 AND t1.UID = t3.ID
    LIMIT 0 , 30

    MySQL meldet:

    #1064 - You have an error in your SQL syntax near 'INNER JOIN comenius_user AS t3 ON t1.category = t2.ID AND t1.ID = 1 AND t1.UID ' at line 4
    Ich würde mich rießig freune wenn mir jemand weiter helfen könnte. Schon mal vielen Dank für eure Bemühungen im Vorraus

    //Darox

  • #2
    lass das 'AS' weg,

    mache um das ON einen klammer und setze beim ersten JOIN auch ein ON ein.
    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


    • #3
      Ui, die Antwort ging aber schnell

      Ich kann mir gerade nur leider nicht vorstellen was du genau meinst. Um welches ON eine Klammer und bis wohin?
      Könntest du mir den Code wie du ihn die Vorstellst evt. kurz posten.
      Danke !

      Kommentar


      • #4
        *urgs* vielleicht ein bisschen damit beschäfftigen? mysql.com hilft dir dabei weiter!

        Kommentar


        • #5
          beim umbauen ist mir aufgefallen, dass du alles bei dem ON hattest. ich habe es mal getrennt, sodass es passen sollte.
          Code:
          SELECT
              *
          FROM
              comenius_newsletter_articles t1
                  INNER JOIN comenius_newsletter_categories t2 ON (t1.category = t2.ID)
                  INNER JOIN comenius_user t3 ON (t1.UID = t3.ID)
          WHERE
              t1.ID = 1
          LIMIT
              0,30
          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


          • #6
            Wunderbar, es klappt
            Vielen lieben Dank.

            //Darox

            PS: Was hat es mit dem LIMIT aufsich? Heißt das, dass nur die ersten 30 Einträge ausgewählt werden?

            Kommentar


            • #7
              ja! ebenfalls mysql.com

              Kommentar


              • #8
                Gut, vielen Dank

                Stellt sich letztlich jedoch noch folgende Frage, dich sich mir bei mysql.com leider nicht auf den ersten, bzw. zweiten Blick beantwortet

                SELECT
                *
                FROM
                comenius_newsletter_articles t1
                INNER JOIN comenius_newsletter_categories t2 ON (t1.category = t2.ID)
                INNER JOIN comenius_user t3 ON (t1.UID = t3.ID)
                WHERE
                t1.ID = 1
                Alle Tabellen (t1,t2,t3) enthalten das Feld ID.

                Wenn ich später in PHP auf ID zugreife wird glaub t2 oder gar t3 zurück gegeben (richtig?).
                Wie bekomme ich den ID-Wert von T1
                Da gibt es doch eine Clausel mit der man T1.ID einen neuen Namen (z.B. AID) geben kann.

                Kommentar


                • #9
                  T1.ID ID1

                  Kommentar


                  • #10
                    Also so???

                    Code:
                    SELECT t1.ID ID1, *
                    FROM comenius_newsletter_articles t1
                    INNER JOIN comenius_newsletter_categories t2 ON ( t1.category = t2.ID )
                    INNER JOIN comenius_user t3 ON ( t1.UID = t3.ID )
                    ORDER BY 1 - t1.timestamp
                    Gibt leider einen Fehler
                    Wo genau und wie wird das eingebaut?

                    Kommentar


                    • #11
                      Gibt leider einen Fehler
                      der da wäre?

                      Kommentar


                      • #12
                        SQL-Befehl :

                        SELECT t1.ID ID1, *
                        FROM comenius_newsletter_articles t1
                        INNER JOIN comenius_newsletter_categories t2 ON ( t1.category = t2.ID )
                        INNER JOIN comenius_user t3 ON ( t1.UID = t3.ID )
                        ORDER BY 1 - t1.timestamp
                        LIMIT 0 , 30

                        MySQL meldet:

                        #1064 - 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 comenius_newsletter_articles t1
                        INNER JOIN comenius_ne

                        Kommentar


                        • #13
                          SELECT t1.ID ID1, t2.*, t3.*
                          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


                          • #14
                            Aha. Gut, so klappts.

                            Ist es möglich zu sagen, ich will von t2 alles (also t2.*) aber ohne t2.name?

                            Kommentar


                            • #15
                              ja. dann musst du alle felder explizit angeben, die du haben willst.

                              -> das sollte man sowieso machen.
                              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