Ankündigung

Einklappen
Keine Ankündigung bisher.

Mega Sql Query Problem

Einklappen

Neue Werbung 2019

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

  • Mega Sql Query Problem

    HI!
    Ich hab eine Art Forum auf zwei verschiedenen Server laufen.
    Server A hat 4.0.18 installiert und Server B ca 5.0!

    Auf B läuft das Forum wie am schnürchen. Dabei benutze ich eine Abfrage um im Hauptthemenbereich den letzten Author aller Posts der Threads, die in diesem Hauptthemenbereich stecken anzu zeigen!

    Code:
    SELECT D.Author FROM(
    SELECT C.Text, C.InstanceOf, C.Author, S.ID, S.InstanceOf As MainInstance
    FROM (
    
    SELECT M.Text, M.InstanceOf, M.ID, M.Author, M.InstanceOf
    FROM ForumMsg AS M
    ) AS C
    INNER JOIN ForumStruct AS S ON C.InstanceOf = S.ID
    ORDER BY C.ID DESC) AS D INNER JOIN ForumStruct AS H ON D.MainInstance = H.InstanceOf
    WHERE D.MainInstance = 1148057479
    LIMIT 1
    Wie gesagt.. auf B läufts und bei A bekomme ich die Meldung "Syntax Error. Please Check "SELECT C.Text, C.InstanceOf, ...""

    Danke im Vorraus

  • #2
    4.0.18 unterstützt keine Subselects.

    entw. aufrüsten oder die Abfrage umstellen.

    Kommentar


    • #3
      Ui!
      Also ich hab erst seid 2-3 Woche mit SQL angefangen und ich wüsst net wie ich das jetzt änder! Hättest du oder irgendwer einen Vorschlag?

      Kommentar


      • #4
        Wie sieht denn deine Tabellenstruktur aus? Was für ein Resultat möchtest du mit welchen Ausgangsdaten erhalten?

        Kommentar


        • #5
          Es gibt eine Tabelle ForumStruct, in ihr wird die Structur des Forums gespeichert.
          Dazu gibt es noch eine Tabelle inder die Nachrichten gespeichert werden (ForumMsg).
          Das Forum ist quasi ein zweistufiger Baum. Jedes glied hat eine ID und ein InstanceOf. wobei InstanceOf die ID des übergeordneten Pfads ist.
          Daraus entsteht dann:
          Hauptthema 1
          SubThema 1(oder Thread)
          Nachricht 1, 2,3....
          SubThema 2
          Nachricht 1,2,3..
          .
          :
          Hauptthema 2,3,4

          Es soll nun in der Hauptthemaübersicht zu sehen sein, wer den letzten Beitrag geschrieben hat, dh. Man muss ins Hapththema gehen dort alle THreads suchen die als InstanceOf die ID des Hauptthemas haben, dann in jedem Thread die Nachrichten erfassen, die als InstanceOf die ID des Threads haben und dann nach dem ID absteigend aufzulisten und aufs erste element bescränken. Denn die IDs sind alle mit der Zeit wachsend.

          Danke

          Code:
          CREATE TABLE `ForumStruct` (
            `ID` int(10) NOT NULL default '0',
            `Author` varchar(25) NOT NULL default '',
            `Date` int(10) NOT NULL default '0',
            `Caption` varchar(40) NOT NULL default '',
            `Description` longtext NOT NULL,
            `Type` varchar(6) NOT NULL default '',
            `InstanceOf` int(10) NOT NULL default '0',
            `Icon` varchar(10) NOT NULL default 'None',
            PRIMARY KEY  (`ID`)
          )
          
          CREATE TABLE `ForumMsg` (
            `ID` int(10) NOT NULL default '0',
            `Author` varchar(25) NOT NULL default '',
            `Date` int(10) NOT NULL default '0',
            `InstanceOf` int(10) NOT NULL default '0',
            `Text` longtext NOT NULL,
            `Edit` longtext NOT NULL,
            `EditDate` int(10) NOT NULL default '0',
            PRIMARY KEY  (`ID`)
          )

          Kommentar


          • #6
            Also, die ForumMsg ist über InstanceOf mit der id der ForumStruct verknüpft und du willst von jeder id der ForumStruct dien letzten Eintrag aus ForumMsg?

            Code:
            SELECT ForumStruct.id, MAX(ForumMsg.id)
            FROM  ForumStruct 
            JOIN ForumMsg
            ON ForumStruct.id = ForumMsg.InstanceOf
            GROUP BY ForumStruct.id
            Evtl. Tippfehler eingeschlossen.

            Kommentar


            • #7
              Ne aber danke!
              Es ist noch ein stück schlimmer!
              Es sind immer zwei Elemente des ForumStruct mit einander verknüpft! Dazu ist das letzten nochmal mit den Nachrichtren aus ForumMsg verknüpft!

              Kommentar


              • #8
                Das wirst du nicht mehr über eine einzige Abfrage lösen können.

                Du musst die Abfrage also aufdröseln.

                Kommentar

                Lädt...
                X