Bobby: MySQL Match-Problem -> über mehrere Tabellen suchen

Moin

ich habe 2 Tabellen mit je Name und Beschreibung als Spalten. Nun möchte ich mit einem Query beide Tabellen volltextsuchen

Mein Ansatz:

  
SELECT comtable.Name, comtable.Beschreibung  
FROM  
(  
    SELECT Tabelle1.Name AS Name, Tabelle1.Beschreibung AS Beschreibung  
    FROM Tabelle1  
    UNION  
    SELECT Tabelle2.Name AS Name, Tabelle2.Beschreibung AS Beschreibung  
    FROM Tabelle2  
)  
AS comtable  
WHERE MATCH  
(  
    Name, Beschreibung  
)  
AGAINST  
(  
    'test'  
)  

So. Nun ist ja kein Volltextindex über die Spalten comtable.Name und comtable.Beschreibung gelegt was mir auch promt mit der Meldung _#1191 - Can't find FULLTEXT index matching the column list_ quittiert wird.

Wie bekomm ich das hin die Tabellen sinnvoll für eine Volltextsuche zu verknüpfen. Wo liegt mein 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:)
  1. Moin

    so. Hab die Abfrage nun mit Like gestaltet:

      
    SELECT comtable.Typ, comtable.Name, comtable.Beschreibung  
    FROM  
    (  
        SELECT 'Tabelle1' AS Typ, Tabelle1.Name AS Name, Tabelle1.Beschreibung AS Beschreibung  
        FROM Tabelle1  
        UNION  
        SELECT 'Tabelle2' AS Typ, Tabelle2.Name AS Name, Tabelle2.Beschreibung AS Beschreibung  
        FROM Tabelle2  
    )  
    AS comtable  
    WHERE  
    comtable.Name LIKE '%test%'  
    OR  
    comtable.Beschreibung LIKE '%test%'  
    
    

    So funktionierts erstmal.

    Wenn es eine elegantere Lösung mit der Fulltext-Funktionalität gibt, bitte ich darum. Man lernt ja nie aus

    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:)
    1. Moin

      Und nochmal ich: Sorry, aber ich will ja auch meine Lösungen mitteilen:

      SELECT comtable.Typ, comtable.Name, comtable.Beschreibung
      FROM
      (
          SELECT 'Tabelle1' AS Typ, Tabelle1.Name AS Name, Tabelle1.Beschreibung AS Beschreibung
          FROM Tabelle1 WHERE MATCH (Name,Beschreibung) AGAINST ('test')
          UNION
          SELECT 'Tabelle2' AS Typ, Tabelle2.Name AS Name, Tabelle2.Beschreibung AS Beschreibung
          FROM Tabelle2 WHERE MATCH (Name,Beschreibung) AGAINST ('test')
      )
      AS comtable

      So funktionierts nun wie gewünscht. Gibts was dran auszusetzen?

      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:)