Bobby: komplexere MySQL-Abfrage

Beitrag lesen

Moin

Ich habe eine komplexe Abfrage die nicht richtig funktioniert. Ich weiß aber nicht so richtig warum

  
SELECT  
  Typ,  
  Anzahl,ID,  
  Name,  
  Beschreibung  
  FROM  
  (  
    (  
       SELECT  
         'Datentyp1' AS Typ,  
         (  
           SELECT  
           COUNT(*) FROM Datentyp1  
           WHERE MATCH (Name, Beschreibung)  
           AGAINST (' +test*' IN BOOLEAN MODE)  
         )  
         AS Anzahl,  
         Datentyp1_ID AS ID,  
         Name AS Name,Beschreibung AS Beschreibung  
         FROM  
         Datentyp1  
         LEFT JOIN  
           Schlagwort ON  
           (  
             MATCH (Schlagwort)  
             AGAINST (' +test')  
             IN BOOLEAN MODE  
           )  
         LEFT JOIN  
           `Datentyp1-Schlagwort` ON  
           (  
             `Datentyp1-Schlagwort`.Schlagwort_ID = Schlagwort.Schlagwort_ID  
           )  
         WHERE  
           MATCH (Name, Beschreibung)  
           AGAINST (' +test'  
           IN BOOLEAN MODE)  
         OR  
           `Datentyp1-Schlagwort`.Datentyp1_ID = `Datentyp1`.Datentyp1_ID  
       ORDER BY Name ASC LIMIT 0,3  
     )  
 )  
 AS comtable  

Die Fehlermeldung lautet:
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 'BOOLEAN MODE) LEFT JOIN Datentyp1-Schlagwort ON (Datentyp1-Schlagwort.Schl' at line 1

Die Abfrage muss genaui so zusammengebaut werden, da es sich hier um 10 Datentypen handelt, die per Union zusammengeschlossen werden. Aber eine einzelne Abfrage auf einen Datentyp passt schon nicht. Darf ich kein MATCH in LEFT JOINS ausführen?

Datenbankversion: 5.0.51 MyIsAM und der Fulltext-index ist auch richtig gesetzt. Wer entdeckt meinen Denkfehler?

Gruß Bobby

--
-> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
-> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)