Hi Falk
SELECT b.bildnr
FROM tab AS a
INNER JOIN tab AS b
ON (a.bildnr = b.bildnr
and b.schlagwort = 'Kirche')
WHERE a.schlagwort = 'Kunst'
Damit klappts hoffentlich (ungetestet mangels rdbms),
ist allerdings keine allgemeine Lösung, klappt nur mit
genau 2 (geändert auch mit mehreren, Performance würde
jedoch massiv leiden).
Wenn du eine alte Version von MySQL hast, dann
geht INNER JOIN noch nicht, dann müsstest du mit
LEFT (OUTER) JOIN arbeiten und die Records die
auf der b Seite keine Einträge haben (ISNULL(b.bildnr))
ausschliessen.
Wenn es dir nur darum geht, Einträge die mehrfach existieren
auszuschliessen kannst du damit arbeiten:
SELECT a.bildnr, count(*) as counti
FROM tab AS a
WHERE (a.stichwort in ('stichwort1', 'stichwort2', ..., 'stichwortN')
GROUP BY a.bildnr
HAVING counti > entweder anz Stichworte, od anz min Treffer mit den Stichworten
Gruss Daniela