Hallo Community,
also zuerst einmal meine SQL-Abfrage:
"SELECT DISTINCT [...] FROM information
JOIN tagged ON tagged.infoId = information.id
JOIN tags ON tags.id = tagged.tagId
WHERE tags.tag IN ('keyword1', 'keyword2')"
Der Aufbau der Datenbank sieht so aus:
In der Tabelle "information" sind Informationen gespeichert.
In der Tabelle "tagged" ist eine ID zu einer Information und eine ID zu einem Tag gespeichert.
In der Tabelle "tags" sind die Tags gespeichert.
Jede Information kann also mehreren Tags zugewiesen werden über die Tabelle "tagged".
Die Abfrage soll folgendes machen: keyword1 und keyword2 (in der IN-Anweisung) werden gegeben und es sollen alle Informationen abgefragt werden, die mit beiden Tags verbunden sind. Ich denke, dass die JOINs gut klappen, aber mit dem IN ist irgendetwas falsch. Derzeit werden alle Einträge abgefragt, die mit mindestens einem der Keywords verbunden sind. Dabei soll die Abfrage auch mit mehreren Keywords funktionieren.
Ich hoffe, dass die Erklärung einigermaßen verständlich war und freue mich auf Antworten.
MfG,
Benjamin