Hallo,
Ich sitze jetzt hier gerade über einer für mich ungalublich schweeren SQL Abfrage und kriege es nicht hin sie vernünftig zu formulieren. Irgendwie habe ich absolut kein Konzept wie ich da herangehen kann/soll. Ich muss irgendwie so viel gleichzeitig berücksichtigen dass mir alles aus den Händen gleitet und ich jetzt schon seit ein paar Stunden gar nichts zusammenbekomme. Ich versuche es mal etwas zu beschreiben, vielleicht könnt ihr mir dann ein wenig helfen.
Ich habe drei MySQL Tabellen (verkürtzt):
news
id,
topic,
title,
keywords,
teaser,
content
content
id,
topic,
title,
keywords,
teaser,
content
comments
id,
name,
content,
parent
news und content sind voneinander völlig unabhängig. In comments->parent ist die id der news auf die sich dieser Kommentar bezieht. Darin befindet sich (vereinfacht dargestellt) der ganze Inhalt der ganzen Seite. Als Ausgabe möchte ich dann im Endeffekt so etwas haben (je nachdem wo der Begriff gefunden wurde:
news: /news/id -> /news/68
content: /id -> /about
comments: /news/news_id#c_id -> /news/68#c12
Als ich letztes Jahr schon mal gefragt hatte bekam ich schon mal eine gute Antwort:
------------------
SELECT
[combinedTables].[felda]
,[combinedTables].[feldb] -- -> text feld zum durchsuchen
,[combinedTables].[feldc] -- -> tabellen identifier
FROM
(SELECT ID as [felda], text as [feldb], 'tab1' as [feldc] FROM tab1
UNION
SELECT ID as [felda], text as [feldb], 'tab2' as [feldc] FROM tab2
UNION
SELECT ID as [felda], text as [feldb], 'tab1' as [feldc] FROM tab3)
as [combinedTables]
WHERE MATCH [combinedTables].[feldb] AGAINST ('wort1 wort2')
------------------
Die ich aber absolut nicht in die Wirklichkeit umsetzen kann. Ich weiß vor allem nicht wie ich dann auseinander halten kann in welcher Tabelle das Wort gefunden wurde. Wie kann ich das angehen?
Grüße
Jeena Paradies