Hallo zusammen
Ich habe ein Problem mit dem erstellen des Query für eine Suchabfrage. Ich habe 2 Tabellen:
Article -> id, TITLE, text_id, ...
Texts -> id, TEXT
Ist nun einem Artikel kein Text zugewiesen hat dieser die text_id -1 ansonsten die id des Textes. Nun will ich eine Suche erstellen, welche TITLE und TEXT durchsucht. Das ganze mit MATCH.
Das Problem ist, wenn text_id den Wert -1 hat kann ich ja in meinem Query nich WHERE A.text_id = B.id benutzen, da sonst der TITLE bei diesen auch nicht durchsucht wird....
Hoffe ihr versteht was ich meine
EDIT:
Was ich habe:
SELECT ba. * ,
MATCH (
at.`TEXT`
)
AGAINST (
'Suchwort'
) AS mtch1,
MATCH (
ba.`TITLE`
)
AGAINST (
'Suchwort'
) AS mtch2
FROM `Article` ba
INNER JOIN `Texts` at ON ba.`text_id` = at.`id`
WHERE
ba.`STATUS` = 'open'
HAVING mtch1 > 0.001
OR mtch2 > 0.001
Hier wird allerdings nur gesucht wenn eine text_id zugewiesen ist (diese nicht -1 ist)
Ich habe ein Problem mit dem erstellen des Query für eine Suchabfrage. Ich habe 2 Tabellen:
Article -> id, TITLE, text_id, ...
Texts -> id, TEXT
Ist nun einem Artikel kein Text zugewiesen hat dieser die text_id -1 ansonsten die id des Textes. Nun will ich eine Suche erstellen, welche TITLE und TEXT durchsucht. Das ganze mit MATCH.
Das Problem ist, wenn text_id den Wert -1 hat kann ich ja in meinem Query nich WHERE A.text_id = B.id benutzen, da sonst der TITLE bei diesen auch nicht durchsucht wird....
Hoffe ihr versteht was ich meine
EDIT:
Was ich habe:
SELECT ba. * ,
MATCH (
at.`TEXT`
)
AGAINST (
'Suchwort'
) AS mtch1,
MATCH (
ba.`TITLE`
)
AGAINST (
'Suchwort'
) AS mtch2
FROM `Article` ba
INNER JOIN `Texts` at ON ba.`text_id` = at.`id`
WHERE
ba.`STATUS` = 'open'
HAVING mtch1 > 0.001
OR mtch2 > 0.001
Hier wird allerdings nur gesucht wenn eine text_id zugewiesen ist (diese nicht -1 ist)

Kommentar