Michel Vuijlsteke's weblog

Tales of Drudgery & Boredom.

Stijl

Ik vraag me soms af wat het beste is in een query:

select * from tblTopics, tblObjects, tblTrans
where object_id=topic_id and topic_name_sc=trans_sc and object_deleted=0 and trans_LN='NL'
order by cast(trans_text as varchar(50))

of wat SQL Server er van maakt:

SELECT *
FROM tblTopics INNER JOIN
tblObjects ON tblTopics.topic_ID = tblObjects.object_ID INNER JOIN
tblTrans ON tblTopics.topic_name_SC = tblTrans.trans_SC
WHERE (tblObjects.object_deleted = 0) AND (tblTrans.trans_LN = 'NL')
ORDER BY CAST(tblTrans.trans_text AS varchar(50))

Ik vermoed het tweede zeker?

3 Reacties

  1. Nick Van den Abbeele

    dinsdag 9 december 2003 at 13:26

    2de is een modernere SQL syntax, maar lang niet door alle DBs gesupporteerd (Oracle bv. maar vanaf 9i)
    Naar performantie/uitvoering zijn ze identiek. Kijk maar eens naar de statistics in SQL Query Analyser

  2. Wij leren op school de syntax uit de 1ste versie (oracle 8i geloof ik), maar ik geef toe dat de moderne syntax duidelijker is. En logisch gezien zijn ze mekaars equivalent natuurlijk, dus de uitvoering is krak hetzelfde, zoals Nick zegt.

  3. Die tweede syntax da’s zoiets gelijk CSS vind ik: jaren niet van gedaan, en dan beginnen gebruiken en u afvragen wat er nu eigenlijk moeilijk aan was.

    In de praktijk doe ik syntax 1 als het simpele dinges zijn zoals in dit gval, en syntax 2 van zodra het meer dan pakweg drie tabllen zijn. Of er een outer join bij komt te kijken natuurlijk.

Zeg uw gedacht

© 2016 Michel Vuijlsteke's weblog

Thema gemaakt door Anders NorenBoven ↑