Hallo Ich habe eine App, die Posts, Tags und eine Tag_ref Link-Tabelle hat. Ich möchte nach Posts suchen, die eine bestimmte Tag-Zuordnung haben.SQL: Hilfe mit SQL Joins
Die Datenbankstruktur ist wie folgt:
Beiträge
ID
tags_ref
row_id
Tabelle
tag_id
Tags
id
safe_tag
Tag
Meine Frage geht im Grunde, wenn $ safe_tag nicht null ist dann tags_ref beitreten auf post.id = tags_ref.row_id Fügen Sie Tags zu tags_ref.tag_id = tags.id hinzu, wobei tags_ref.table = 'posts' und tags.safe_tag = 'food' und post.city_id = 2
Ist diese Abfrage korrekt? Benutze ich den richtigen Join-Typ?
SELECT *
FROM (`posts`)
INNER JOIN `tags_ref` ON `posts`.`id` = `tags_ref`.`row_id`
INNER JOIN `tags` ON `tags_ref`.`tag_id` = `tags`.`id`
WHERE `tags_ref`.`table` = 'posts'
AND `tags`.`safe_tag` = 'food'
AND `posts`.`city_id` = '2'
Ich bekomme seltsame Ergebnisse, die überhaupt keine Tags zugeordnet haben.
Dank
Warum zitieren Sie alle Tabellen- und Spaltennamen? Meinst du die city_id-Einschränkung? – Oded
@Oded, es ist ein Ausdruck von Codeigniter Profiling-Funktion – iamjonesy