Avatar billede robertmp Nybegynder
31. maj 2007 - 14:33 Der er 3 kommentarer

JOIN 2 tabeller + mit spørgsmål

Hej database nørder

Jeg sidder med et lille problem, som jeg håber at kunne få lidt fornuftig input til at løse.
Jeg har 2 tabeller som jeg joiner. Det er altid en 1 til mange relation.
1 hit fra tabel 1 og en masse fra tabel 2... simple enough. Her er et fiktivt eksempel:
Tabel1 kalder vi for:
Hus
id, vejnavn, nummer

Tabel2 kalder vi for:
Person
Fornavn, efternavn, hårfarve, alder, husID

Nu har vi altså en lille database hvor vi kan lave en relation mellem hus og personer.

Hvordan får jeg nu opbygget noget SQL der kan hive alle huse ud hvor mine søgekriterier opfyldes af 1 til flere personer i huset?

eksempel:
person1 har hårfarve grøn og alder 30. Bog i husID 1
Person2 har hårfarve hvid og alder 15. Bor i husID 1

Jeg skal søge på hårfarve grøn, alder 15. HusID 1 skal dukke op.

Nogen der har et forslag?
Avatar billede bauerdata Nybegynder
31. maj 2007 - 19:43 #1
select *
from hus h,person p
where  p.husID = h.id
  and p.hårfarve="grøn"
  and p.alder = 30
Avatar billede robertmp Nybegynder
01. juni 2007 - 09:22 #2
De er den lille typo at du søger på alder 30. Det skulle have været 15 år.
Hvis kriterierne er grønt hår og alder 15 vil resultaterne komme i 2 tupler og derved retunere 0 hits. (Så vidt jeg kan gennemskue).
Avatar billede robertmp Nybegynder
01. juni 2007 - 12:24 #3
Jeg prøver lige med en konkretisering og et par eksempler

Select * from .. WHERE hårfarve=grøn OR alder=15
Den vile returnere 2 resultater

Select * from .. WHERE hårfarve=grøn AND alder=15
Denne vil ikke returnere noget.

Mit problem er at jeg skal have de huse ud hvor 1 eller flere personer tilsammen opfylder kriterierne. Men alle kriterier skal være opfyldt.
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