/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
ID til holdnavn hjemme og ude
Fra : Martin


Dato : 14-07-08 15:25

Hejsa!

Kan dette egentlig lade sig gøre

tabel.hold

id holdnavn
1 Hold1
2 Hold2
3 Hold3
4 Hold4
osv.
id = primær nøgle

tabel.kampe
id hjemme ude hjemme_res ude_res
1 1 2 1 1
2 3 4 2 1

hjemme = foreign nøgle til tabel.hold
ude = foreign nøgle til tabel.hold
id = primær nøgle

Kan man nu få hjemme og udeholdets navn ud med en enkelt sql sætning?

Ønsket resultat noget lign.

kamp id = 1
hjemme = Hold1
ude = Hold2
hjemme_res = 1
ude_res = 1

kamp id = 2
hjemme = Hold3
ude = Hold4
hjemme_res = 2
ude_res = 1

Håber det giver mening :)

 
 
Henrik Davidsen (14-07-2008)
Kommentar
Fra : Henrik Davidsen


Dato : 14-07-08 19:08

> Kan dette egentlig lade sig gøre

Ja det skulle jeg mene.


Prøv med:


select
t1.id as kampId,
t2.holdnavn as hjemmeHold,
t3.holdnavn as udeHold,
t1.hjemme_res,
t1.ude_res
from kampe t1
inner join hold t2 on t1.hjemme = t2.id
inner join hold t3 on t1.ude = t3.id

Tricket er at man joiner hold-tabellen på 2 gange. Den første gang joiner
man hold-id'et på hjemme-kolonnen, og anden gang joiner man hold-id'et på
ude-kolonnen.

/Sjang



Martin (14-07-2008)
Kommentar
Fra : Martin


Dato : 14-07-08 19:21

Henrik Davidsen wrote:
>> Kan dette egentlig lade sig gøre
>
> Ja det skulle jeg mene.
>
>
> Prøv med:
>
>
> select
> t1.id as kampId,
> t2.holdnavn as hjemmeHold,
> t3.holdnavn as udeHold,
> t1.hjemme_res,
> t1.ude_res
> from kampe t1
> inner join hold t2 on t1.hjemme = t2.id
> inner join hold t3 on t1.ude = t3.id
>
> Tricket er at man joiner hold-tabellen på 2 gange. Den første gang joiner
> man hold-id'et på hjemme-kolonnen, og anden gang joiner man hold-id'et på
> ude-kolonnen.

Smart - og jeps det er forstået og skrevet ned :)

Arne Vajhøj (16-07-2008)
Kommentar
Fra : Arne Vajhøj


Dato : 16-07-08 00:57

Martin wrote:
> Henrik Davidsen wrote:
>>> Kan dette egentlig lade sig gøre
>> Prøv med:
>>
>> select
>> t1.id as kampId,
>> t2.holdnavn as hjemmeHold,
>> t3.holdnavn as udeHold,
>> t1.hjemme_res,
>> t1.ude_res
>> from kampe t1
>> inner join hold t2 on t1.hjemme = t2.id
>> inner join hold t3 on t1.ude = t3.id
>>
>> Tricket er at man joiner hold-tabellen på 2 gange. Den første gang
>> joiner man hold-id'et på hjemme-kolonnen, og anden gang joiner man
>> hold-id'et på ude-kolonnen.
>
> Smart - og jeps det er forstået og skrevet ned :)

Den magiske søge term til Google er:
self join

Arne

Søg
Reklame
Statistik
Spørgsmål : 177429
Tips : 31962
Nyheder : 719565
Indlæg : 6407948
Brugere : 218878

Månedens bedste
Årets bedste
Sidste års bedste