Bernie Spiekel: mysql: Datensätze ermitteln, die nicht in einer Liste vorkommen

Beitrag lesen

Hallo Leute!

Ich komme einfach nicht weiter, es wäre sehr nett wenn ein SQL Profi mir hier weiterhelfen kann...

Ich habe eine Datenbank mit zwei Tabellen.

1. Keyword
ID    WORD
1     car
2     hamster
3     billboard
4     peanut
5     foo
[..]

2. Picture
ID    KEYWORD     [..]
1     2,3,4
2     4
3     1,2
[..]

In der Tabelle "Picture" sind also Keywordlisten der entsprechenden Keywords, die zum Bild gehöhren, gespeichert. Im obigen Beispiel ist also das Bild mit der ID 3 mit den Worten "car" und "hamster" bezeichnet.

Nun habe ich folgenden Wunsch:
Ich möchte herausfinden, ob es Einträge in der Tabelle "Keyword" gibt, die in keiner Keywordliste der Tabelle "Picture" vorkommen. Im obigen Beispiel wäre das "foo" - es existiert in keiner Liste unter "Picture".

Tja und dafür brauche ich eine SQL.
Meine bisherigen Versuche (Volllaie) sind kläglich gescheitert:

SELECT
picture.id
from picture
LEFT JOIN keyword
WHERE NOT FIND_IN_SET( keyword.id, picture.keyword)

Ich hoffe jemand kann mir weiterhelfen,
danke, Bernie