vraagje over inner join

Status
Niet open voor verdere reacties.

amity

Gebruiker
Lid geworden
3 dec 2006
Berichten
9
Goede middag,

Ik gebruik Microsoft sql 2005 en zit met de volgende vraag:

Ik heb een tabel genaamd: subscriber. in deze tabel staat:

-telefoonnummer (primary_extension)
-naam
-udf2_recID int
-udf5_recID int

-udf2_recID en -udf5_recID maken een relatie met een andere tabel genaamd char_fields.

de tabel char_fields bestaat uit

-netwerkcode
-intern nummer
-recID
-extern nummer

-udf2_recID uit de tabel subscriber verwijst naar de juiste record in char_fields naar het interne nummer welke staat in het veld value van de desbetreffende record..

-udf5_recID uit de tabel subscriber verwijst naar de juiste record in char_fields naar het 06-nummer indien aanwezig welke staat in het veld value van de desbetreffende record.

Om nu de netwerkcode (value) + telefoonnummer (primary extension) te koppelen doe ik de query:
[sql]
select char_fields.value,subscriber.primary_extension from subscriber
inner join char_fields on subscriber.udf2_recID=char_fields.recID=subscriber.udf2_recID
[/sql]

de output is netwerkcode en vervolgens telefoonnummer (primary extension)

Nu wil ik udf5_recID ook weergeven in mijn view met een query. Het vervelende is dat udf5_recID ook verwijst naar char_fields in het veld value. udf5_recID en udf2_recID weet dus wat er in het veld value staat voor type gegevens.

Ik moet nu 2 keer een innerjoin maken in 1 query. Dit krijg ik dus niet voor elkaar :confused:
[sql]
select char_fields.value,subscriber.primary_extension from subscriber
inner join char_fields on subscriber.udf2_recID=char_fields.recID=subscriber.udf2_recID
inner join char_fields as subscriber_1 on subscriber_1.udf5_recID=char_fields.recID=subscriber_1.udf5.recID
[/sql]
Dit is wat ik geprobeerd heb, maar krijg eigenlijk constant errors. Wat doe ik fout??

- graag wil ik dat de output wordt netwerkcode - telefoonnummer - 06-nummer -

gr,

Eldert.
 
Laatst bewerkt door een moderator:
Ik zie hier:
Code:
subscriber_1.udf5.recID

2 punten staan in 1 veld, moet niet 1 van die twee een underscore zijn?
 
Bedankt voor de verbetering. Vooralsnog kom ik er nog niet uit om 2 innerjoins in 1 query te weergeven. De innerjoins doen het zonder 'as statement' prima, met output. Maar zodra ik ze alle 2 gebruik in 1 query gaat het mis. Met en zonder as statement. Dit is mijn code nu:

[sql]select char_fields.value as value,char_fields.value as value2, subscriber.primary_extension from subscriber
inner join char_fields as value on udf5_recID=char_fields.recID
inner join char_fields as value2 on udf2_recID=char_fields.recID[/sql]
 
Laatst bewerkt:
Als je iets aliased (ie: 'as' gebruikt) dan moet je dat ook overal doen.
Dus ook in de ON conditie, en in de SELECT, moet je de naam gebruiken die je na 'as', zet, anders weet hij alsnog niet op welke tabel hij moet gaan matchen.

Voorbeeldje ->
Code:
SELECT andere_naam.a FROM tabel1
INNER JOIN tabel2 as andere_naam ON andere_naam.veld = tabel1.ander_veld

Kijk eens of dat helpt :)
 
Ook met het voorbeeld hierboven krijg ik het niet voor elkaar. :( het probleem zit hem in het feit dat ik in eerste instantie een join maak tussen 2 tabellen. de tweede join zijn gegevens uit het zelfde veld 'value' en daar gaat het mis...
 
Ik heb mijn vraagstelling sterk vereenvoudigd. Zie het word-document s.v.p.

Groet,

Eldert.
 

Bijlagen

  • vraagje.docx
    16,2 KB · Weergaven: 15
kleine tikfout in word doc: het lukt me alleen om intern nummer + extern nummer te weergeven, of netwerkcode +intern nummer.
er komen problemen zodra ik de netwerkcode + het externe nummer wil tonen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan