Avatar billede msmuller Nybegynder
01. november 2011 - 16:03 Der er 4 kommentarer og
1 løsning

SQL der trækker data på grundlag af undertabel data hvor der er flere krav

Jeg vil gerne trække data fra en tabel med den betingelse at flere krav skal være opfyld fra en under tabel. Fx:

"navne"
Id, Navn, bydel,køn
1,Michael,vanløse,mand
2,Dorthe,Frederiksberg,kvinde
3,Christina,Østerbro,kvinde

"koebt"
navneId,koeb,aar
1,sofa,2010
1,stol,2009
1,bord,2009
3,sofa,2000
2,bord,2002

Jeg vil nu trække data ud med en SELECT så jeg får navnet på den person der både har købt en sofa og en stol.

Jeg prøver denne, men det virker ikke

SELECT navn
FROM navne, koebt
WHERE navne.id = koebt.navneid
AND koebt.koeb = 'sofa'
AND koebt.koeb = 'stol'

Hvis jeg omskriver en til denne, så virker det:

SELECT navn
FROM navne, koebt k1, koebt k2
WHERE navne.id = k1.koebt.navneid
AND navne.id = k2.koebt.navneid
AND k1.koebt.koeb = 'sofa'
AND k2.koebt.koeb = 'stol'

Men er der ikke en mere enkel måde - for hvis jeg nu skal checke hvem der har købt en stol, et bord, en sofa, en lampe, en kop mv., så bliver det jo en stor sql

Glæder mig til at læse nogle forslag
Avatar billede arne_v Ekspert
01. november 2011 - 16:10 #1
Nej. Du er noedt til at lave en self join for at finde noget der matcher to raekker i samme tabel.
Avatar billede msmuller Nybegynder
01. november 2011 - 16:47 #2
Altså på den måde jeg har lavet det ??
Avatar billede arne_v Ekspert
01. november 2011 - 17:07 #3
ja
Avatar billede msmuller Nybegynder
03. november 2011 - 16:45 #4
Mange tak
Avatar billede arne_v Ekspert
03. november 2011 - 16:56 #5
var det en opfording til at smide et 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