-
08-11-2005, 19:01 #1Member
- Registered
- 25/11/03
- Location
- Antwerpen
- Posts
- 2,757
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/3
SQL: tabel/kolom selecteren na voorwaarde
hallo,
even een achtergrond schets ter verduidelijking: dit is voor een manager spel dat ik aan het maken ben, in het bijzonder het transfereren van wielrenners.
wanneer ik alle cyclists die op de transferlijst staan wil zien, doe ik een query van verschillende tabellen, nl transfers, cyclists en teams, zodat ik meteen de gegevens van de betrokken cyclist en het team dat het laatste heeft geboden heb.
de tabel 'transfers' heeft volgende kolommen:
id
last_team_id
cyclist_id
price
deadline
last_team_id kan OOK de waarde 0 kan hebben: wanneer er nog geen team heeft geboden.
en dit is een beetje het probleem:
wlke tabellen en kolommen die ik wil selecteren hangen af van last_team_id. als deze niet nul is, wil ik ook de teams-tabel selecteren zodat ik bv de naam van het team meteen heb.
als last_team_id gelijk is aan 0, wil ik enkel een selectie doen van transfers en cyclists
dus moet er ergens een if..then structuur in passen denk ik, maar ik weet niet hoe precies.
met andere woorden: hoe steek ik dit alles in één query?
(ik hoop dat ik duidelijk was, anders... probeer ik het nog wel eens
)
alvast bedanktFree online cycling managerno votes
-
-
08-11-2005, 19:33 #2
Is het 'n query voor SQL server en hebt ge toegang tot views/stored procedures?
Technical JEE consultant: Cronos - Just another geek: web\lab studios
Standards aren't for innovation as it happens, they are for innovation that has gotten so old that everybody is ready to just conform to the accepted best practices and move on to figuring out something else.. (Hans Reiser)no votes
-
09-11-2005, 09:25 #3Member
- Registered
- 25/11/03
- Location
- Antwerpen
- Posts
- 2,757
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/3
yup
Free online cycling managerno votes
-
09-11-2005, 13:32 #4
selecteert gewoon ALLES wa ge ergens nodig hebt en schrijf uw selectie in uw pagina/programma
of werk met PLSQL of variantwat baten vuur en grill, als de kip niet braden wilno votes
-
09-11-2005, 14:11 #5Member
- Registered
- 26/03/03
- Location
- Dendermonde
- Posts
- 5,472
- iTrader
- 28 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/8
Gebruik stored procedures en dan zou dat in orde moeten komen.
Lang geleden da ik ze nog gezien heb dus kan geen vbtje typen.no votes
-
09-11-2005, 15:19 #6
Euh.. stored procedures? Da kan toch gewoon met joins?
select * from
transfers join cyclists on transfers.cyclist_id = cyclists.id
left join teams on transfers.last_team_id = teams.id
Dan hebben de teams kolommen wel de waarde NULL als er nog geen team geboden heeft, maar dat is even makkelijk op te vangen als wanneer je de teams kolommen gewoon niet zou terug krijgen (geval van stored procedure).no votes
-
09-11-2005, 17:46 #7Member
- Registered
- 25/11/03
- Location
- Antwerpen
- Posts
- 2,757
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/3
merci Kn0t, dat is precies wat ik wil hebben.
ik was aan het denken aan joins; inner en outer, left, etc maar dit zit allemaal zooo ver weg
is het trouwens mogelijk om de team naam (kolom teams.name), ipv NULL te laten, een bepaalde waarde te geven? bv 'Geen Team', om maar iets te zeggen? Zodat dit later meteen in de applicatie kan geladen worden, en ik hier niets meer op applicatie niveau hoef te doen.Free online cycling managerno votes
-
09-11-2005, 19:45 #8
Een left join hangt allemaal af van 't feit of 'n bepaalde conditie null is. (veld heeft geen child row in de andere tabel) Dan gaat ge sowieso ofwel 'n if moeten schrijven in je query, ofwel gewoon 'n sp moeten gebruiken.
Trouwens: alles selecteren wat ge ooit nodig hebt? Dat wilt ge sowieso NOOIT doen. Vraag bijvoorbeeld maar eens de execution plan op van zo'n query en huiver!Technical JEE consultant: Cronos - Just another geek: web\lab studios
Standards aren't for innovation as it happens, they are for innovation that has gotten so old that everybody is ready to just conform to the accepted best practices and move on to figuring out something else.. (Hans Reiser)no votes
-
09-11-2005, 20:36 #9Member
- Registered
- 25/11/03
- Location
- Antwerpen
- Posts
- 2,757
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/3
tja, ik wou die query in een SP steken, omdat ik toch steeds dezelfde informatie moet opvragen voor dat gedeelte. en alles wat ik opvraag ga ik tonen op het scherm, het is niet dat ik maar enkele veldjes zal gebruiken.
en daarom leek het mij beter om dat zo te doen, ipv in de applicatie zelf de null values eruit te halen en te vervangen door een bepaalde tekst.
maar als het dan zo beter is, dan zal ik het zo maar doen.Free online cycling managerno votes
