MYSQL: Match against über mehre Tabellen
Schorsch
- datenbank
Guten Tag
Wie kann ich MATCH AGAINST über mehrere Tabellen tätigen?
Index über mehrere Tabellen anlegen oder Abfrage ändern?
Danke für jeden Hinweis!
SELECT per.person_id
FROM tbl_person AS per, tbl_adr AS adr, tbl_person_adr AS jpa
WHERE adr.adr_id = jpa.adr_id
AND per.person_id = jpa.person_id
AND MATCH (
per.person_vorname, per.person_name, adr.adr_ort
)
AGAINST (
'blah'
WITH QUERY EXPANSION
)
MySQL meldet:
#1210 - Incorrect arguments to MATCH
Hallo,
eventuell könnte ein UNION (ALL) über die entsprechenden Tabellen als Unterabfrage (Subselect/Subquery) helfen?
Schau mal in der Dokumentation deiner MySql Version diesbezüglich nach.
Ciao und gut Nacht,
Frank
Salut
eventuell könnte ein UNION (ALL) über die entsprechenden Tabellen als Unterabfrage (Subselect/Subquery) helfen?
Vielen Dank!
Also MATCH AGAINST funktioniert wohl nicht über mehrere Tabellen, jedoch kann man mehrere SELECT Anweisungen mit UNION zu einer zusammenfassen:
SELECT per.person_id
FROM tbl_person AS per, tbl_adr AS adr, tbl_person_adr AS jpa
WHERE adr.adr_id=jpa.adr_id AND per.person_id=jpa.person_id AND
MATCH (per.person_vorname, per.person_name)
AGAINST ('blah' WITH QUERY EXPANSION)
UNION
SELECT per.person_id
FROM tbl_person AS per, tbl_adr AS adr, tbl_person_adr AS jpa
WHERE adr.adr_id=jpa.adr_id AND per.person_id=jpa.person_id AND
MATCH (adr.adr_ort)
AGAINST ('blah' WITH QUERY EXPANSION)
Geniesst den Tag!
Neue Erkenntnis:
Es scheint nur die Suche im Modus:
'WITH QUERY EXPANSION'
zu betreffen.
Die Suche im Modus:
'IN BOOLEAN MODE'
funktioniert über mehrere Tabellen.
Juhee!