|
| 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
| |
|
|