SQL (subquery, select or join)

Status
Niet open voor verdere reacties.

ehezhmxnezklb

Nieuwe gebruiker
Lid geworden
7 sep 2008
Berichten
1
Hoi allemaal!

Ik zit met een lastige kwestie. Ik geraak er maar niet uit welke van volgende queries de meest geschikste is :( Er zijn niet zoveel tabellen, en ze bevatten ook weining inhoud, dus ze geven allemaal 16ms uitvoeringstijd aan. Kan iemand me leren wanneer welke syntax te gebruiken? (en ook de select vs join, want ik vind de select er altijd het korste uitzien)

-- Subquery
SELECT TEAMNR, COUNT(WEDSTRIJDNR)
FROM WEDSTRIJDEN
WHERE TEAMNR IN
(SELECT TEAMNR
FROM TEAMS T, SPELERS S
WHERE T.SPELERSNR = S.SPELERSNR
AND PLAATS = 'Zoetermeer')
GROUP BY TEAMNR;

-- Select
SELECT W.TEAMNR, COUNT(WEDSTRIJDNR)
FROM WEDSTRIJDEN W, TEAMS T, SPELERS S
WHERE W.TEAMNR = T.TEAMNR
AND T.SPELERSNR = S.SPELERSNR
AND PLAATS = 'Zoetermeer'
GROUP BY W.TEAMNR;

-- Join
SELECT T.TEAMNR, COUNT(WEDSTRIJDNR)
FROM TEAMS T INNER JOIN SPELERS S ON
T.SPELERSNR = S.SPELERSNR
LEFT JOIN WEDSTRIJDEN W ON
T.TEAMNR = W.TEAMNR
WHERE S.PLAATS = 'Zoetermeer'
GROUP BY T.TEAMNR;

Alvast vriendelijk bedankt! :)
Mvg,
Thomas
 
SELECT W.TEAMNR, COUNT(WEDSTRIJDNR)
FROM WEDSTRIJDEN W, TEAMS T, SPELERS S
WHERE W.TEAMNR = T.TEAMNR
AND T.SPELERSNR = S.SPELERSNR
AND PLAATS = 'Zoetermeer'
GROUP BY W.TEAMNR;

Zelf hou ik van deze constructie. Die join constructie vind ik altijd erg onduidelijk vooral als je 4 of 5 tabellen aan elkaar moet knopen.
Subqueries kunnen soms erg traag worden daarom probeer ik ze altijd te vermijden.

Zoals je al zei zijn je tabellen klein.. dus vind ik leesbaarheid belangrijker dan performance.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan