Avatar billede hkb-x Nybegynder
19. februar 2009 - 14:54 Der er 2 kommentarer

tekstsøgning på tværs af tabeller

Jeg har 2 tabeller:
T1 der indeholder elementer med et id og et navn: T1(id, navn) og en anden tabel T2 der bare indeholder en tekst T2(tekst).

Nu vil jeg gerne hive nogle elementer ud af T1 hvir id macher et bestemt integet men kun hvis dets navn findes et eller andet sted i T2. Jeg forestiller mig en query der ser nogenlunde således ud:

SELECT * FROM T1 WHERE id=? AND NOT EMPTY (SELECT 1 FROM T2 WHERE tekst LIKE %T1.navn%)

Men jeg får bare en fejl efter EMPTY. ER der nogle der kan strikke en fungerende query sammen?
Avatar billede arne_v Ekspert
19. februar 2009 - 14:58 #1
proev med:

SELECT * FROM T1 WHERE id=? AND EXISTS (SELECT * FROM T2 WHERE tekst LIKE '%' + T1.navn + '%')
Avatar billede arne_v Ekspert
19. februar 2009 - 14:59 #2
ups MySQL

SELECT * FROM T1 WHERE id=? AND EXISTS (SELECT * FROM T2 WHERE tekst LIKE CONCAT('%',T1.navn,'%') )
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