Avatar billede martens Guru
22. juli 2000 - 21:33 Der er 6 kommentarer og
1 løsning

2 poster med samme ID selekteres

Jeg er ved at lave en database med en masse oplysninger om beboere i et større lejlighedskompleks.
Databasen er opbygget omkring lejlighedsID eks. 148
Men der kan jo godt bo mere end én i lejlighed nr. 148 !
Hvordan laver jeg et udtræk fra en tabel således at disse to beboere kommer til at stå i hvert sit felt i en forespørgsel.
eks. PriID 148 Felt1:Hr Hansen Felt2:Fr. Hansen
nu står de i samme tabel PriID Felt1:Hr Hansen
Felt1:Fr. Hansen
det skal virke således at man evt. kan lave en rapport til ID 148
lydende til Hr. Hansen & Fr. Hansen

mvh martens
Avatar billede tigerdyr Nybegynder
22. juli 2000 - 21:40 #1
Lyder som en en til mange relation, 1 Lejlighed til Mange beboere...
Den nemmeste måde at lave det på (og mest korrekte) må være at lave det som en tabel med lejlighedsinfo. og en tabel med beboer info., primærnøglen fra lejlighedsinfoen bruger du så som fremmednøgle i beboerinfoen...

Der ved kan søgningen (og udskrivelse af resultatet) også udskrives som du vil have det
Avatar billede rennebo Nybegynder
23. juli 2000 - 02:41 #2
Tigerdyr..... Du har helt ret, men for at ikke \"databasefreaks\" kan forstå hvad du mener, så skærer jeg det lige ud i pap *g*

Du skal bruge to tabeller til formålet.

1. En tabel med lejlighedsoplysninger
LejeID
Adresse
Husleje
osv.

2. En tabel med beboere i lejlighederne
LejeID
Navn

Dvs. for hvert lejemål kan du oprette flere beboere, i modsætning til hvis alle data er i samme tabel.
Avatar billede sjensen Nybegynder
23. juli 2000 - 08:04 #3
Og hvad så hvis en person lejer mere end en lejlighed ? Eller det kan man måske ikke ? Det må jo være en mange til mange relation der er tale om, og så skal man lige have den 3. tabel med:

1. Beboer: Id, navn, ...
2. Lejlighed: Id, adr. ...
3. Lejemål: LejemålID (autoincrement felt), Beboer.Id, Lejlighed.ID, ...

Og for at få alle beboere i en lejlighed:
select * from lejemål where lejlighed.id = ønsketId
Og alle lejemål for en bestemt lejer:
select * from lejemål where beboer.id = ønsketId

o.s.v.
Avatar billede tigerdyr Nybegynder
23. juli 2000 - 12:40 #4
Hvor tit støder man på en person der lejer flere lejligheder i samme beboelse ??
Jeg tog udgangs punkt i at der er en \"logisk\" begrænsing i hvor mange lejligheder man kan stå som lejer for...

Men hvis det rent faktisk er muligt for en beboer at leje flere lejligheder og der kan være flere lejere pr. lejemål, har sjensen selvfølgelig ret i at det bliver til en mange til mange relation...
Avatar billede martens Guru
23. juli 2000 - 16:12 #5
1. problem er bare, at jeg er databasefreak.
2. problem tabellerne er lavet,- Jeg importerer dem fra at andet program.
Så de står i samme tabel med samme PriID  148 : Hr Hansen
PriID : Fr. Hansen
Jeg ville gerne selektere dem der bor i nr 148 således at de står ved siden af hinanden i en tabel beboer1 beboer2 fremfor at de står i samme felt, hvis I forstår ......
De gør I jo nok (freaks) <rennebo> :o)

mvh martens

Avatar billede tigerdyr Nybegynder
23. juli 2000 - 16:32 #6
Enten skal du som sagt lave det med flere tabeller (entiteter) og relationer, ellers skal du tilføje ekstra felter (attributter) til din ene tabel (entitet) og det vil skabe inkonsistens!

Hvorfor ikke bare lave det med de 2 eller 3 entiteter der er behov for og så med nogle simple SQL sætninger flytte de gamle data over i de nye entiteter ??
Avatar billede martens Guru
26. juli 2000 - 22:48 #7
LUKKER
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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