Toon posts:

[Access SQL]Query met 2 relaties naar 1 tabel

Pagina: 1
Acties:
  • 126 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb een vraag over relaties in queries.

In een database bevinden zich de volgende 2 tabellen:
-Klanten
-Landen

In het tabel 'Klanten' zijn er 2 velden die naar het tabel 'Landen' wijzen. Nu wil ik een select query maken die alles uit het 'Klanten' tabel haalt en ook de gerelateerde waarden uit het 'Landen' tabel.

FF een voorbeeld situatie:

Klanten:
Naam - Land1 - Land2
Jansen - 1 - 3
Boer - 2 - 3

Landen:
Id - Naam
1 - Nederland
2 - Frankrijk
3 - Duitsland

Ik wil dus een query maken dat mij het volgende retourneert:
<Klanten.Naam, Land1, Land2, Land1-Naam, Land2-Naam>
of
<Klanten.Naam, Land1-Naam, Land2-Naam>
dus:
<Jansen, 1, 3, Nederland, Duitsland> of <Jansen, Nederland, Duistland>

Als er maar één relatie was dan was het geen probleem want dan zou ik de volgende query kunnen uitvoeren:
"SELECT Klanten.Naam, Klanten.Land1, Landen.Naam FROM Klanten, Landen WHERE Klanten.Land1 = Landen.Id"

Maar met 2 relaties naar hetzelfde table zal dit niet meer werken. Weet er iemand hoe ik dit in één query kan oplossen of is dit niet te doen?

Bedankt alvast!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 28 november 2001 11:41 schreef Los_Bastardos het volgende:
Maar met 2 relaties naar hetzelfde table zal dit niet meer werken. Weet er iemand hoe ik dit in één query kan oplossen of is dit niet te doen?
Kan je in access met aliases werken?
FROM landen landen1, landen landen2
en dan bij je where
klanten.land1 = landen1.land and klanten.land2 = landen2.land

of whatever

Verwijderd

SELECT klanten.land1, klanten.land2, landen.landnaam AS landnaam1, landen.landnaam AS landnaam2
FROM klanten, landen
WHERE landnaam1 = klanten.land1 AND
landnaam2 = klanten.land2;

Ik weet niet zeker of dit werkt, trial and error I guess ;)

Verwijderd

Topicstarter
Op woensdag 28 november 2001 11:44 schreef ACM het volgende:

[..]

Kan je in access met aliases werken?
FROM landen landen1, landen landen2
en dan bij je where
klanten.land1 = landen1.land and klanten.land2 = landen2.land

of whatever
Aliasen zijn idd mogelijk in Access en dat is dus ook de oplossing :)

Bedankt ACM!

Verwijderd

Topicstarter
Op woensdag 28 november 2001 11:52 schreef Shivo het volgende:
SELECT klanten.land1, klanten.land2, landen.landnaam AS landnaam1, landen.landnaam AS landnaam2
FROM klanten, landen
WHERE landnaam1 = klanten.land1 AND
landnaam2 = klanten.land2;

Ik weet niet zeker of dit werkt, trial and error I guess ;)
Ik krijg hem helaas niet aan de praat zo, landnaam1 en landnaam2 worden namelijk niet herkend in de where conditie.

Iig, bedankt voor je hulp Shivo!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Mijn taak om het te zeggen : Slecht database model.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT 
  klanten.land1, 
  klanten.land2, 
  a.landnaam, 
  b.landnaam 
FROM 
  klanten, 
  landen a,
  landen b
WHERE 
  a.landid=klanten.land1
and
  b.landid=klanten.land2

*gaap*

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Topicstarter
Op woensdag 28 november 2001 12:23 schreef dusty het volgende:
Mijn taak om het te zeggen : Slecht database model.
Waarom is het dan zo slecht?

  • Driek
  • Registratie: Maart 2002
  • Laatst online: 07:27
is het gelukt met die querie?
ik zit op het moment met hetzelfde probleem
en kom er nog niet helemaal uit

Tijd van werken, tijd van rusten


  • Sjnirk
  • Registratie: Maart 2001
  • Laatst online: 27-03-2025

Sjnirk

Hie vrieve

Je kunt toch zo'n tabel 2 keer in dat venster toevoegen, kijk dan naar de sql die erachter zit, en verander de WHERE een beetje ben je toch klaar?

Bikkelen gebeurt pas na 2:00


  • Driek
  • Registratie: Maart 2002
  • Laatst online: 07:27
nee dus
ksnap ook nie heelamal wa je bedoelt

Tijd van werken, tijd van rusten


  • Sjnirk
  • Registratie: Maart 2001
  • Laatst online: 27-03-2025

Sjnirk

Hie vrieve

code:
1
2
SELECT bla
FROM land, land AS land1

heb je je alias en kun je doen wat je wilt

Bikkelen gebeurt pas na 2:00


Verwijderd

Op maandag 22 april 2002 14:48 schreef Driek het volgende:
nee dus
ksnap ook nie heelamal wa je bedoelt
Heb je wel eens gehoord van de querybuilder in Access? Of schrijf je ze nog in Notepad? ;) Nou, daarin kun je dus 2 keer dezelfde tabel invoegen en joins tekenen naar je andere tabel. En als je dan linksboven in je scherm SQL selecteert, dan wordt je query als tekst getoond en kun je dus precies zien hoe Access-SQL met 2 dezelfde tabellen en aliasses omgaat. :Z
Pagina: 1