Outputtet skulle gerne være som følger. I min tabel 1 har jeg f.eks. modulerne Nyheder, Produkter og Sider. Disse skal vises én gang med tilhørende rettigheder fra tabel 2 som kunne være view, add, edit og delete.
Det min sql gør nu er at den viser modulerne 4 gange altså :
Nyheder - view - add - edit - delete
Nyheder - view - add - edit - delete
Nyheder - view - add - edit - delete
Nyheder - view - add - edit - delete
Og den skal kun vise modulet én gang men med alle rettigheder.
select tabel1.Id, tabel1.Modul, tabel1.Beskrivelse, tabel2.Aktiv from tabel1 inner join tabel2 on tabel1.Id = tabel2.ModulId group by tabel1.Id, tabel1.Modul, tabel1.Beskrivelse, tabel2.Aktiv
Du har vel ikke tilføjet Rettiged kolonnen til den query jeg foreslår?
Hvis du vil have en række pr modul, skal du kun selecte et resultatset, hvor hver række er på samme niveau som modul. Du kan altså f.eks. ikke have Rettighed med, da du har 4 rettigheder pr modul, og SQL Serveren derfor ikke ved hvilken Rettighed den skal have med i resultatsættet. Hvis Aktiv kolonnen på samme måde ikke er på samme niveau som modul, kan du heller ikke have denne med i resultatsættet.
skriv en query som kun henter felter ud, som har en "en til en" forbindelse med modul, og brug "group by" til at fjerne alle duplikater.
Jeg tror jeg misforstod dig. En Sql sætning henter en tabel ud, det du beskriver ligner mere en pivottabel, hvilken SQL ikke understøtter. Så at bruge 2 queries er nok en god ide.
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.