Mifune
Neuer Benutzer
- Beiträge
- 4
Hallo Allerseits,
eine kurze Zusammenfassung:
Ich betreibe eine Website über Filme auf Basis von Wordpress inkl. MySQL-Datenbank
Anhand eines Plugins, das eine SQL-Abfrage nutzt, gebe ich alle verfügbaren Filmkritiken + Details in einer Übersicht aus.
Das läuft auch alles wunderbar, zwei von einander unabhängige Probleme bekomme ich jedoch trotz Recherchen nicht gelöst. Den Code der Abfrage findet ihr am Ende und bei folgenden Fragen hoffe ich auf eure Hilfe:
1. "False Positives" beim Dublettencheck
Ich habe Filmkritiken zu zwei verschiedenen Filmen mit dem Titel Solaris geschrieben. Ein Film ist 1972 erschienen und einer 2002.
Die Abfrage sollte also erkennen, dass es sich um zwei verschiedene Kritiken handelt.
Dem ist aber nicht so - es wird nur einer der beiden Einträge ausgegeben.
Wie kann ich diesen Fehler über einen Vergleich des Feldes "Veröffentlichungsjahr" verhindern?
2. Nur ein Wert wird ausgegeben, obwohl mehrere verfügbar sind.
Manche Filme lassen sich mehreren Genres zuordnen. Nehmen wir bspw. an, in der Datenbank wäre bei einem Film unter Genre sowohl "Actionfilm" als auch "Thriller" vermerkt.
Die Abfrage gibt aktuell ausschließlich den alphanumerisch ersten Wert an. Was muss ich anstellen, damit alle verfügbaren Werte kommagetrennt ausgegeben werden?
Vielen Dank im Vorraus für jede Hilfe!
PS: Ich bin totaler SQL-Anfänger und habe bisher mehr mit Logik als mit tatsächlichem Wissen an der Abfrage gearbeitet. Bitte habt Gnade :-D
Hier seht ihr die Ausgabe der Abfrage auf der Website: Klick
Und hier die um Redundanzen erleichterte Fassung der Abfrage:
eine kurze Zusammenfassung:
Ich betreibe eine Website über Filme auf Basis von Wordpress inkl. MySQL-Datenbank
Anhand eines Plugins, das eine SQL-Abfrage nutzt, gebe ich alle verfügbaren Filmkritiken + Details in einer Übersicht aus.
Das läuft auch alles wunderbar, zwei von einander unabhängige Probleme bekomme ich jedoch trotz Recherchen nicht gelöst. Den Code der Abfrage findet ihr am Ende und bei folgenden Fragen hoffe ich auf eure Hilfe:
1. "False Positives" beim Dublettencheck
Ich habe Filmkritiken zu zwei verschiedenen Filmen mit dem Titel Solaris geschrieben. Ein Film ist 1972 erschienen und einer 2002.
Die Abfrage sollte also erkennen, dass es sich um zwei verschiedene Kritiken handelt.
Dem ist aber nicht so - es wird nur einer der beiden Einträge ausgegeben.
Wie kann ich diesen Fehler über einen Vergleich des Feldes "Veröffentlichungsjahr" verhindern?
2. Nur ein Wert wird ausgegeben, obwohl mehrere verfügbar sind.
Manche Filme lassen sich mehreren Genres zuordnen. Nehmen wir bspw. an, in der Datenbank wäre bei einem Film unter Genre sowohl "Actionfilm" als auch "Thriller" vermerkt.
Die Abfrage gibt aktuell ausschließlich den alphanumerisch ersten Wert an. Was muss ich anstellen, damit alle verfügbaren Werte kommagetrennt ausgegeben werden?
Vielen Dank im Vorraus für jede Hilfe!
PS: Ich bin totaler SQL-Anfänger und habe bisher mehr mit Logik als mit tatsächlichem Wissen an der Abfrage gearbeitet. Bitte habt Gnade :-D
Hier seht ihr die Ausgabe der Abfrage auf der Website: Klick
Und hier die um Redundanzen erleichterte Fassung der Abfrage:
Code:
SELECT posts_post.ID AS post_ID,
CONCAT('<b><a href=','https://filmsucht.org/',posts_post.post_name,'/','>',posts_post.post_title,'</a></b>') AS post_title_with_link_to_post,
post_taxonomy_regie_tbl.name AS post_taxonomy_regie,
post_taxonomy_genre_tbl.name AS post_taxonomy_genre,
post_taxonomy_erscheinungsjahr_tbl.name AS post_taxonomy_erscheinungsjahr,
FROM wp360_posts AS posts_post
LEFT JOIN (SELECT name, object_id as id FROM wp360_terms AS post_taxonomy_regie_tbl_terms INNER JOIN wp360_term_taxonomy AS post_taxonomy_regie_tbl_termtaxonomy ON post_taxonomy_regie_tbl_termtaxonomy.term_id = post_taxonomy_regie_tbl_terms.term_id AND post_taxonomy_regie_tbl_termtaxonomy.taxonomy = 'regie' INNER JOIN wp360_term_relationships AS rel_post_taxonomy_regie_tbl ON post_taxonomy_regie_tbl_termtaxonomy.term_taxonomy_id = rel_post_taxonomy_regie_tbl.term_taxonomy_id) AS post_taxonomy_regie_tbl
ON post_taxonomy_regie_tbl.ID = posts_post.id
LEFT JOIN (SELECT name, object_id as id FROM wp360_terms AS post_taxonomy_genre_tbl_terms INNER JOIN wp360_term_taxonomy AS post_taxonomy_genre_tbl_termtaxonomy ON post_taxonomy_genre_tbl_termtaxonomy.term_id = post_taxonomy_genre_tbl_terms.term_id AND post_taxonomy_genre_tbl_termtaxonomy.taxonomy = 'genre' INNER JOIN wp360_term_relationships AS rel_post_taxonomy_genre_tbl ON post_taxonomy_genre_tbl_termtaxonomy.term_taxonomy_id = rel_post_taxonomy_genre_tbl.term_taxonomy_id) AS post_taxonomy_genre_tbl
ON post_taxonomy_genre_tbl.ID = posts_post.id
LEFT JOIN (SELECT name, object_id as id FROM wp360_terms AS post_taxonomy_erscheinungsjahr_tbl_terms INNER JOIN wp360_term_taxonomy AS post_taxonomy_erscheinungsjahr_tbl_termtaxonomy ON post_taxonomy_erscheinungsjahr_tbl_termtaxonomy.term_id = post_taxonomy_erscheinungsjahr_tbl_terms.term_id AND post_taxonomy_erscheinungsjahr_tbl_termtaxonomy.taxonomy = 'erscheinungsjahr' INNER JOIN wp360_term_relationships AS rel_post_taxonomy_erscheinungsjahr_tbl ON post_taxonomy_erscheinungsjahr_tbl_termtaxonomy.term_taxonomy_id = rel_post_taxonomy_erscheinungsjahr_tbl.term_taxonomy_id) AS post_taxonomy_erscheinungsjahr_tbl
ON post_taxonomy_erscheinungsjahr_tbl.ID = posts_post.id
WHERE post_taxonomy_erscheinungsjahr_tbl.name != ''
AND posts_post.post_type = 'post'
AND posts_post.post_status = 'publish'
GROUP BY post_title