Hal serupa di sini, tetapi tidak banyak pengembang, dan tidak setua kode. Saya menggunakan hal-hal yang lebih baru, orang-orang yang lebih tua menggunakan gaya yang lebih lama, tetapi kami berdua tahu apa yang coba dilakukan pihak lain.
Secara pribadi, saya akan mengatakan pergi dengan gaya mana pun yang lebih mudah digunakan oleh pengembang individu. Kecuali Anda menjalankan tolok ukur dan mengetahui bahwa yang satu lebih cepat dari yang lain (seperti dalam, perbedaan yang cukup signifikan), dan baik yang baru maupun yang lama dapat membaca &memahami kueri yang mereka lihat, tidak ada alasan untuk mengubahnya.
Namun, pilihan pribadi saya adalah membiarkan hal-hal lama apa adanya, dan menulis kueri baru menggunakan sintaks yang lebih baru, seperti menggunakan JOIN
s dan USING
dan ON
dll. jauh lebih mudah dibaca, dan tahu apa yang terjadi, kemudian memiliki banyak AND x.col = y.col AND z.col = a.col
di WHERE
bagian.
Itu, dan orang-orang baru mungkin akan bertahan lebih lama, jadi pada akhirnya mereka akan berhasil...
Contoh tambahan
Tidak tahu tentang kalian semua, tapi saya tidak suka harus mencoba mencari tahu sesuatu seperti ini (atau menulis ini) menggunakan gaya lama bergabung:
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