List:German« Previous MessageNext Message »
From:Bert Döse Date:May 30 2011 8:05am
Subject:Performante Suche, mehrere Tabellen
View as plain text  
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 TabellenBert Döse31 May