Erster Gedanke (keinen Schimmer, ob die Laufzeit erträglich ist)
SQL-Code:
select d.document_name, d.document_id
from documents as d
join document_words as dw on d.document_id = dw.document_id
join words join words as w on dw.word_id = w.word_id
where
w.word='der' or
w.word='eine'
group by d.document_name, d.document_id
having count(*) = 2
Die Zahl muss halt gleich der Anzahl der gesuchten Worte sein. Die
Query gibt alle gefunden Kombinationen zurück und das having schmeißt alle Dokumente raus, die nur einen Teil der Wörter enthalten.