Avatar billede Slettet bruger
24. april 2010 - 14:17 Der er 2 kommentarer og
1 løsning

Hjælp til en lidt speciel sql-sætning ønskes

Herunder er vist et lille eksempel på hvordan min mssql-database ser ud. Id nr. 1-4 viser mine hovedmenuer og id. nr 5-10 er mine under menuer. Som det ses har de 3 første hovedmenuer undermenuer mens 'Side 4' ingen undermenuer har.

id|menuid|link
1 |1    |Forside
2 |2    |Side 2
3 |3    |Side 3
4 |4    |Side 4 <!--
5 |1    |forside_1
6 |1    |forside_2
7 |2    |side2_1
8 |2    |side2_2
9 |3    |side3_1
10|3    |side3_2

Jeg kan uden problemer udtrække alle undermenuerne:
(SELECT * FROM mydatabase WHERE id <> menuid).
Men jeg ønsker også at medtage de hovedmenuer som IKKE har tilknyttet undermenuer - i dette eksempen altså 'Side 4'

Har nogen et forslag til hvad jeg skal tilføje sql-sætningen for at få den sidste værdi med...?  ~:]
Avatar billede arne_v Ekspert
24. april 2010 - 14:22 #1
prøv:

SELECT *
FROM mydatabase mdb1
WHERE (id <> menuid) OR (NOT EXISTS (SELECT * mydatabase mdb2 WHERE mdb2.id<>mdb1.id AND mdb2.menuid=mdb1.id))
Avatar billede Slettet bruger
24. april 2010 - 15:04 #2
Bingo! - det var lige præcis dette jeg var ude efter... - smid et svar og go´weekend ellers...! ~:]
Avatar billede arne_v Ekspert
24. april 2010 - 15:43 #3
svar
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