Coisa semelhante aqui, mas não tantos devs, e não tão antigo de código. Estou usando as coisas mais novas, os caras mais velhos estão usando o estilo mais antigo, mas nós dois sabemos o que o outro está tentando fazer.
Pessoalmente, eu diria que vá com o estilo que for mais fácil para o desenvolvedor individual usar. A menos que você execute benchmarks e descubra que um é mais rápido que o outro (como uma diferença suficiente para ser significativa), e tanto os novos quanto os antigos podem ler e entender as consultas que veem, não há motivo para alterá-las.
No entanto, meu voto pessoal seria deixar as coisas antigas como estão e escrever novas consultas usando a sintaxe mais recente, como usar
JOIN
se USING
e ON
etc. são muito mais fáceis de ler e saber o que está acontecendo, então ter um monte de AND x.col = y.col AND z.col = a.col
no WHERE
seção. Isso, e os novos caras provavelmente ficarão por mais tempo, então eles vão conseguir o que querem eventualmente...
Um exemplo adicionado
Não sei sobre o resto de vocês, mas eu odiaria ter que tentar descobrir algo assim (ou escrever isso) usando o antigo estilo de junção:
SELECT DISTINCT product_zone_map_id, zh.name_english, zh.name_french, zone_id, ad.attribute_value_english AS bullprep_region_type,
product_zone_type_id, ad.attribute_value_english, language_english, product_code, office_code,
(
SELECT attribute_value_english
FROM presentation p JOIN presentation_details ad USING(presentation_id)
WHERE dimension_id = 4
AND object_id = product_zone_map_id
AND attribute_type = 'BULLPREP PARENT ID'
AND p.usage_start_date <= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss')
AND (p.usage_end_date >= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss') OR p.usage_end_date IS NULL)
) AS bullprep_parent_id,
(
SELECT attribute_value_english
FROM presentation p JOIN presentation_details ad USING(presentation_id)
WHERE dimension_id = 4
AND object_id = product_zone_map_id
AND attribute_type = 'BULLPREP GROUP ID'
AND p.usage_start_date <= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss')
AND (p.usage_end_date >= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss') OR p.usage_end_date IS NULL)
) AS bullprep_group_id, product_zone_seq
FROM zone z JOIN zone_history zh ON(z.zone_id = zh.zone_id)
JOIN product_zone_map pzm ON(z.zone_id = pzm.zone_id)
JOIN product USING(product_id)
JOIN product_history ph USING(product_id)
JOIN language_reference USING(language_id)
LEFT OUTER JOIN product_zone_attribute_details pzad USING(product_zone_map_id)
LEFT OUTER JOIN attribute_details ad USING(attribute_id)
JOIN zone_geocode_map USING(zone_id)
JOIN geocode USING(geocode_id)
WHERE zh.usage_start_date <= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss')
AND (zh.usage_end_date >= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss') OR zh.usage_end_date IS NULL)
AND pzm.usage_start_date <= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss')
AND (pzm.usage_end_date >= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss') OR pzm.usage_end_date IS NULL)
AND (attribute_type = 'BULLPREP REGION TYPE' OR attribute_type IS NULL)
AND product_id = 2075
ORDER BY product_zone_seq