MySQL INNER JOIN
Daniel Nümm
- datenbank
Hallo,
Ich hab eine Datenbank mit 3 Tabellen. tb_urls, tb_keywords und tb_keyword_url_map.
tb_urls
-tf_id
-tf_url
tb_keywords
-tf_id
-tf_keyword
tb_keyword_url_map
-tf_id
-tf_keyword_id
-tf_url_id
-tf_score
wenn ich nach einem keyword suche möchte ich die entsprechenden URLs aus der tb_urls. Das klappt auch mit folgendem Syntax.
SELECT tf_url FROM tb_urls INNER JOIN tb_keyword_url_map ON (tb_urls.tf_id = tb_keyword_url_map.tf_url_id) INNER JOIN tb_keywords ON (tb_keyword_url_map.tf_keyword_id=tb_keywords.tf_id) WHERE tb_keywords.tf_keyword = 'frank' ORDER BY tb_keyword_url_map.tf_score DESC
nun möchte ich aber nach mehreren Wörtern suchen z.B. "frank" + "meyer" und ich habe leider keine Ahnung wie ich das machen soll. da die WHERE clausel ja nicht einfach mit einem AND erweitert werden kann.
vielleicht hat jemand einen Tipp für mich
Hallo
SELECT tf_url FROM tb_urls INNER JOIN tb_keyword_url_map ON (tb_urls.tf_id = tb_keyword_url_map.tf_url_id) INNER JOIN tb_keywords ON (tb_keyword_url_map.tf_keyword_id=tb_keywords.tf_id) WHERE tb_keywords.tf_keyword = 'frank' ORDER BY tb_keyword_url_map.tf_score DESC
nun möchte ich aber nach mehreren Wörtern suchen z.B. "frank" + "meyer" und ich habe leider keine Ahnung wie ich das machen soll. da die WHERE clausel ja nicht einfach mit einem AND erweitert werden kann.
WHERE tf_keyword IN ('frank', 'meyer')
falls es ausreicht, dass eines der beiden Suchworte gefunden wird, eine
logische UND-Verknüpfung kann ja keinen Datensatz finden.
Falls mehrere Keywords eingetragen sein können, dann könntest Du mit Aliasnamen
arbeiten, siehe dazu mein Archivposting: </archiv/2007/4/t150508/#m978117>
Freundliche Grüße
Vinzenz