AMD PoloMarco 23500 gigakilometer - 96" Quadcrystal scherm - Detonator 28010.25 afgerond op 2 decimalen - PlakBand @ 768 TB - 512 GB ZIGB - UltraFlex 100 GPU @ 5.5 ghz / 10 ghz - Isootjes @ 1 GB/sec
Verwijderd
?Op maandag 01 oktober 2001 01:16 schreef Undertaker2 het volgende:
[afbeelding]
select datum, teamnaam, aanvoerder, trainer, roepnaam
from wedstryd, team
where wedstryd.t_code = team.t_code
and wedstryd.t_code like 'H%' and tegenstand = 'SV Voorburg'
order by datum;
AMD PoloMarco 23500 gigakilometer - 96" Quadcrystal scherm - Detonator 28010.25 afgerond op 2 decimalen - PlakBand @ 768 TB - 512 GB ZIGB - UltraFlex 100 GPU @ 5.5 ghz / 10 ghz - Isootjes @ 1 GB/sec
Verwijderd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| select w1.datum , t1.teamnaam , L1.roepnaam , L2.roepnaam from wedstryd w1 , team t1 , lid L1 , lid L2 where w1.t_code = t1.t_code and w1.t_code like 'H%' and w1.tegenstand = 'SV Voorburg' and t1.trainer = L1.l_code and t1.aanvoerder = L2.l_code order by w1.datum; |
Zat te denken aan zoiets. Dus met de codes van je aanvoerder en trainer zoeken in je lid tabel. (kan misschien ook 1 keer gebruik maken van je lid tabel. dus
or t1.aanvoerder = L1.l_code. Alleen weet je dan volgens mij niet welke naam bij wie hoort.)
Verwijderd
* Pelle denkt dat Undertaker2 informatica doet op de HHS en vandaag z'n materiaal voor DB-01 in moest leverenOp maandag 01 oktober 2001 01:16 schreef Undertaker2 het volgende:
Geef per wedstrijd met t_code like H% en tegenstand = 'SV Voorburg', de datum, teamnaam, roepnaam aanvoerder en roepnaam trainer.
'k heb het vannacht ook in elkaar zitten klussen
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
ik zou zelf eens even logisch nadenken, want zo lastig zijn die opdrachten nooit geweest vond ik ..
Oplossing: (maar nu worden de NULL waarden weggelaten.)
select datum, teamnaam, trainer.roepnaam, aanvoerder.roepnaam //select roepnaam uit tabel trainer en select roepnaam uit tabel aanvoerder
from wedstryd, team, lid as trainer, lid as aanvoerder //maak "kopie" van lid als trainer & "kopie" van lid als aanvoerder.
where wedstryd.t_code = team.t_code //koppel tabel wedstryd aan team dmv de t_code's
and wedstryd.t_code like 'H%' //waarbij t_code van wedstryd begint met een H
and wedstryd.tegenstand = 'SV Voorburg' //en de tegenstand SV Voorburg is
and team.trainer = trainer.l_code //en waarbij de trainer van het team gelijk is aan de l_code in roepnaam uit trainer (dat een kopie is van lid)
and team.aanvoerder = aanvoerder.l_code //en waarbij de aanvoerder van het team gelijk is aan de l_code uit aanvoerder (dat een kopie is van lid)
order by wedstryd.datum;
Dit is dus de oplossing die hierboven werd gegeven met behulp van aliassen en een soort van dubbele select uit 1 tabel, maar dan in mijn eigen woorden.
Het antwoord is in dusverre goed dat nu idd geen nummers, maar namen worden getoond. Het "foute" is dat er ook teams zijn die geen trainer hebben (null waarde) en daarom wordt meteen de hele rij weggehaald en da's dus niet de bedoeling. De truc is volgens mij door een left join uit te voeren, maar welke tabel moet ik joinen met welke?
AMD PoloMarco 23500 gigakilometer - 96" Quadcrystal scherm - Detonator 28010.25 afgerond op 2 decimalen - PlakBand @ 768 TB - 512 GB ZIGB - UltraFlex 100 GPU @ 5.5 ghz / 10 ghz - Isootjes @ 1 GB/sec
