Link aanspreektitel meerdere tabellen

Status
Niet open voor verdere reacties.

Roadracer

Gebruiker
Lid geworden
23 aug 2006
Berichten
6
Hallo ,

Heb de volgende vraag : heb 3 tabellen :
1. tabel met gegevens werklui : lidnr Prim Key, naam , Achternaam , aanspreeknr
2 . Tabel met privaat persoonsgegevens lidnr Prim Key, naam , Achternaam , aanspreeknr
3. tabel met aanspreektitel ( aanspreeknr ( Primary Key) , aanpreektitel( mr, mevr ....)

Nu wil ik een gezamelijke lijst van tabel 1 en 2 met hun respectievelijke aanspreektitel . (zodat uit beide tabellen pesonen komen met hun aanspreektitel )
Bijvoorbeeld : mevr Hens Julia mr Thijs Robert

Hoe koppel ik de Tabel aanspreektitel aan de beide tabellen of kan dit niet?

OF moet ik voor elke tabel een tabel aanspreektitel aanmaken en koppelen?

Als dit zo is hoe zit het dan met postcodes , moet hier dan ook voor elke tabel een postcode tabel worden gemaakt en gekoppeld ( lijkt me vreemd , dan zouden de databases toch wel erg groot worden dacht ik zo)

Elke info is welkom ,

Roadracer
 
Laatst bewerkt:
Even voor het beeld: je hebt twee tabellen met persoonsgegevens, en één tabel met aanspreektitels?
Nog afgezien van de vraag waarom je voor de aanspreektitels een aparte tabel hebt, en geen keuzelijst hebt gemaakt in de tabellen: zijn de twee tabellen (Werklui en Persoonsgegevens) aan elkaar gekoppeld? En is dat dan een één op-één relatie?

Vooruitlopend op het antwoord: er vanuit gaande dat het twee aparte tabellen zijn, die beide zijn gekoppeld aan de tabel Aanhef (is inderdaad geen enkel probleem op een tabel meerdere keren te gebruiken...) en de twee tabellen niet aan elkaar zijn gekoppeld, kun je met een Union query de twee tabellen samenvoegen tot één resultaatquery.
Dat ziet er ongeveer zo uit:

SELECT * FROM tabel1
UNION ALL
SELECT * FROM tabel2

Deze variant is een beetje tricky, want die gaat er vanuit dat:
1. beide tabellen evenveel velden hebben
2. de velden op dezelfde kolomplek staan

Als dat bij jou niet het geval is, zul je de kolommen apart moeten benoemen.
Dus:
SELECT WerkluiID, Naam, Telefoon FROM tabel1
UNION ALL
SELECT PersoonID, Achternaam, Telefoonnummer FROM tabel2

Je ziet, dat de namen van de velden niet hetzelfde hoeven te zijn, maar de betekenis wel, en de volgorde ook.
 
Misschien was ik niet duidelijk genoeg .
De 2 persoonstabellen zijn niet gekoppeld maar wat ik wens te verkrijgen is dat uit de derde tabel ( aanhef of aanspreek) voor beide tabellen de aanhef wordt opgehaald voor de juiste persoon .
Dus voor Hens Julia aanhef ( 1 ) mevr en voor Thijs Robert aanhef (2) mr )

Kan dit uit 1 aanspreektabel of moet ik dan voor elke persoonstabel een aanhef tabel maken?

Bedankt alleszins vor de hulp

RR
 
Ik vrees dat je laatste post niet veel heeft geholpen....b :confused:
Laten we bij het begin beginnen: waarom wil je een tabel voor Aanspreektitels?
En waarom noem je de aanspreektitel in beide tabellen anders?
 
Opnieuw proberen

Ik zal de situatie beter schetsen:
PK = Primary Key

Dit zijn de tabellen:
Tabel 1 : Klanten : PK klantnr , klantnaam , klantvoornaam , aanspreektitel
Tabel 2 : Chauffeurs : PK Nr WN, Naam WN , Voornaam WN, aanspreking WN
Tabel 3 : Ritten : PK Ritnr , Klantnr , nr WN , ritdatum
Tabel 4 : Aanspreektitels : PK nr aanspreking , aanspreektitel

1 is gekoppeld : klantnr met 3 Klantnr
2 is gekoppeld : nr WN met 3 nr WN

Nu wil ik een lijst met gegevens uit 1 + 2 met hun aanspreektitel ophalen (dus de aanspreektitel uit tabel 4.

Hoe koppel ik nu juist de 4 de tabel aan tabel 1 en 2
en hoe haal ik de juiste aanspreektitels op.

Als ik maar 1 aanspreektabel koppel met 1 en 2 krijg ik 41 records
Als ik 2 aanspreektabellen maak en deze respectievelijk koppel met 1 en de andere met tabel 2 krijg ik 104 records .

Maar dit kan toch niet de bedoeling zijn om telkens een nieuwe aanspreektabel te moeten aanmaken voor persoonstabellen ( firmas , privepersonen , etc...)
Dan word de dadabase toch wel erg groot . Daarom haal ik het voorbeeld op met postcodes . Dat zou willen zeggen dat je voor elke persoonstabel waar postcodes in moeten staan je een tabel postcodes moet maken en deze aan de tabel moet koppelen ??? lijkt me niet erg logisch.

Hoop dat het nu iets duidelijker is.

RR
 
Het is lichtelijk duidelijker.... Als je maar doorvraagt :p

Je hebt dus een query gemaakt met tabel1, tabel2 en tabel3 voor de gegevens, en nu wil je tabel4 koppelen aan zowel tabel1 als tabel2 om de juiste aanhef in de query te krijgen.
De aanhefgegevens in tabel1 en tabel2 hebben uiteraard niks met elkaar te maken, omdat het verschillende personen betreft. Toch gebruik je dezelfde tabel om de aanhef op te slaan.
De oplossing is (eigenlijk) heel simpel... Open tabel4 twee keer in het query ontwerp! De ene versie koppel je aan tabel!, de tweede versie koppel je aan tabel2. Nu zul je zien, dat je de juiste aanhef bij de juiste persoon krijgt, en ook nog eens het juiste aantal records!
Als je het helemaal mooi wilt maken, selecteer je de kopie van tabel4, klik je op Eigenschappen en verander je de Alias (de naam) van de kopie, zodat e.e.a. wat beter genaamd is.
 
Dacht het al

Dat is inderdaad de werkwijze die ik gebruik maar hoe zit het dan met een postcode tabel .
Is dit dan de zelfde wijze ? Vind ik eigenlijk vreemd . Wat is het nut dan van een database als je voor elke persoonstabel een bijkomende postcodetabel moet aanmaken.

kan je via geen enkele sql (query) het resultaat bekomen zonder met dubbele tabellen te werken . De opbouw van mijn database wijzigen wijzigen is een manier maar ik bedoel met de bestaande tabellen ?


Bedankt voor het antwoord ,

RR
 
Waar ik zelf voor zou kiezen, als je persoonsgegevens op wilt slaan, is om alle persoonsgegevens in één tabel onder te brengen. Onder het motto: een mens is een mens..... En mensen hebben, als je dat tenminste gebruikt, een BSN nummer dat ze uniek maakt, en als je dat niet altijd hebt, kun je natuurlijk zelf een ID nummer genereren.
Waarom zou ik één tabel gebruiken? Omdat de soort Mens in het algemeen dezelfde eigenschappen heeft: een naam, een adres, een postcode, een geboortedatum, etc. Er is weinig op tegen, om al die gegevens in één tabel onder te brengen.
Als je verschil wilt tussen klanten en medewerkers, dan voeg je een extra kolom toe, met daarin een keuzelijst om het onderscheid vast te leggen. Eventueel kun je, als je handmatig ID's maakt, daar met een lettercode ook nog onderscheid in maken.
Wanneer gebruik je een extra tabel? Voor de gegevens die niet voor alle personen hetzelfde zijn. Zo hebben Klanten een Debiteurennummer, een klantnummer etc. En Personeel krijgt (meestal) salaris, dus die gegevens sla je ook in een aparte tabel op. De extra tabellen krijgen een één-op-een relatie met de centrale Persoonstabel, en je hebt alles netjes gecentraliseerd-gescheiden.
Door voor (in wezen) dezelfde artikelen (mensen dus ...) verschillende tabellen te gebruiken, moet je ook in queries steeds elk overeenkomend veld uit een andere tabel, zoals Aanhef en Postcode, steeds twee keer opnemen in je query.

Lijkt mij op zich al een goede reden om eens over een andere structuur na te denken...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan