Hallo Liste,
ich möchte eine performante Suche über mehrere verknüpfte Tabellen
realisieren.
Tablle1
Spalten: ID, Beschreibung (Text), Art, Farbe
Bsp Datensatz 1: 1, Dieser Datensatz beschreibt ein Auto der Mittelklasse., 2, 3
Bsp Datensazu 2: 2, Dieser Datensatz beschreibt ein Auto der Oberklasse., 2, 2
---
Tabelle2
Spalten: ID, Art
Bsp Datensatz 1: 1, Limousine
Bsp Datensatz 2: 2, Cabrio
Bsp Datensatz 3: 3, Kombi
---
Tabelle3
Spalten: ID, Farbe
Bsp Datensatz 1: 1, Rot
Bsp Datensatz 2: 2, Gelb
Bsp Datensatz 3: 3, Blau
Wenn nun nach "Auto Cabrio blau" gesucht wird, dann soll der Datensatz der Tabelle 1 mit
der ID 1 ausgegeben werden.
Ein
SELECT id
FROM tabelle1
LEFT JOIN tabelle2 ON tabelle1.art = tabelle2.id
LEFT JOIN tabelle3 ON tabelle1.farbe = tabelle3.id
WHERE
MATCH (tabelle1.beschreibung) AGAINST ('+auto +cabrio +blau' IN BOOLEAN MODE)
AND (tabelle2.id = NULL OR MATCH (tabelle2.art) AGAINST ('+auto +cabrio +blau' IN BOOLEAN
MODE)
AND (tabelle3.id = NULL OR MATCH (tabelle3.farbe) AGAINST ('+auto +cabrio +blau' IN
BOOLEAN MODE)
wie bereits von Hartmut vorgeschlagen bringt leider nicht das richtige Ergebnis.
| Thread |
|---|
| • Performante Suche, mehrere Tabellen | Bert Döse | 31 May |