Avatar billede mick Nybegynder
12. juni 2001 - 19:18 Der er 2 løsninger

Problemer med EXISTS

Jeg har et problem med følgende query :

SELECT * FROM butikk_vare, butikk_varekat WHERE NOT EXISTS (SELECT butikk_vare.vnr FROM butikk_vare, butikk_varekat WHERE butikk_vare.vnr=butikk_varekat.vnr)

I tabellen butikk_vare er der en række med varenumrer. Jeg ønsker at vælge de varer fra tabellen butikk_vare, hvis varenr. ikke findes i tabellen butikk_varekat. Men ovenstående query vælger ingenting ud.
Avatar billede jakobandersen Nybegynder
12. juni 2001 - 19:26 #1
Noget ala dette skulle gøre det:

SELECT Varenummer FROM butikk_vare WHERE Varenummer NOT in(SELECT varenummer FROM butikk_varekat)

--
Jakob Andersen
Avatar billede sunedh Nybegynder
13. juni 2001 - 22:54 #2
Når der er tale om mange rækker (det ved jeg selvfølgelig ikke om der er ;) er en subquery ikke så smart (læs: hurtig)

Jeg vil anbefale:

SELECT *
FROM butikk_vare
LEFT OUTER JOIN butik_varekat ON butikk_vare.vnr=butikk_varekat.vnr
WHERE butikk_varekat.vnr IS NULL

Kolonnen vnr kunne godt lyde som en nøgle, eller i hvert fald en kolonne, man ville lave et index på, hvilket ovenstående query vil drage fordel af.

-sunedh
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