edit1: Sorry läste fel
edit2: Tanken är i alla fall att du vill få snittet av alla sökord. Får du en mängd A rader på sökord1, en mängd B på sökord 2. Vill du returnera intersection(A,B) då dessa rader är de enda som innehåller båda sökorden. Just snitt är lite kluriga i SQL (tycker jag i alla fall :) ) men nu vill jag ju klura lite påt. ;)
edit3: En ful bruteforce-'lösning' som i alla fall fungerar. Den kräver en extra subquery för varje ord. 'Representerat som olika färger'. Kan jämföras med min ovanstående mängdhistoria där blå = mängd A och röd = mängd B.
select t.id from page t
where [blue]t.id in (select t1.id
from page t1, link t2, keyword t3
where (t1.id = t2.pointer_page
and t2.pointer_keyword = t3.id)
and t3.skeyword = 'foo')[/blue]
[red]and t.id in (select t1.id
from page t1, link t2, keyword t3
where (t1.id = t2.pointer_page
and t2.pointer_keyword = t3.id)
and t3.skeyword = 'bar');[/red]
