Avatar billede tos Praktikant
24. marts 2006 - 13:44 Der er 1 løsning

Hjælp til søgning i 3 tabeller

Jeg har 4 tabeller:
- dokumenter (id,titel)
- felter (id,docid,objname,type,objid)
- obj_tekster (objid, txt, docid)
- obj_nyheder (objid, headline,txt, docid)

1. Der kan være mange felter til dokumenter.
2. felter.type = <objekt> ("obj_tekster" eller "obj_nyheder")
3. felter.objid = <objekt>.objid
4. dokumenter.id = felter.docid = <objekt>.docid

Der skal søges i alle  "<objekt>.txt" + dokumenter.titel

Jeg skal have "distinct dokumenter.id" tilbage... hvordan skal SQL'en se ud?

Pft..
/Torben
Avatar billede tos Praktikant
26. marts 2006 - 22:59 #1
jeg fandt det selv - "INNER JOIN" x 2:)

SELECT doc.id, $tdocs.menutitle,
MATCH (doc.menutitle,doc.documenttitle,doc.teaser) AGAINST ('query') AS score
FROM doc
INNER JOIN docfields ON (doc.id=docfields.docid)
INNER JOIN obj ON (docfields.objectid=obj.id)
WHERE obj.content LIKE \"%query%\" ORDER BY score DESC;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester