Трябва да започнете да използвате стандартен синтаксис JOIN. Освен че е по-четим (поне според мен), той също така ви предпазва от случайни декартови съединения, ако забравите действителното условие за свързване в клаузата WHERE. Плюс това е преносим в почти всички СУБД за разлика от тромавия (+)
синтаксис, използван от Oracle (който също има някои ограничения, които синтаксисът JOIN няма)
Ето заявката, пренаписана с помощта на явни (вместо неявни) съединявания:
SELECT DISTINCT ope.ope_operationid,
ser.ser_code,
opt.opt_code,
ost.ost_code
FROM od_operation ope,
LEFT JOIN od_service_type ser ON ope.ser_id = ser.ser_id
LEFT JOIN od_operation_type opt ON opt.opt_id = ope.opt_id
LEFT JOIN od_status_type ost ON ost.ost_id = ope.ost_id
LEFT JOIN od_equipment_type eqt ON ????????
WHERE ope.opt_id = 3781
AND ope.ope_operationid = 'LAA351BP'
Редактиране
Липсващото условие за присъединяване на od_equipment_type
е точно причината, поради която се предпочита синтаксисът JOIN. Ако крайната запетая в оригиналния SQL бъде премахната, операторът ще създаде нежелано декартово съединение, което може да има сериозно въздействие върху сървъра, ако участващите таблици са големи.
Със синтаксиса JOIN винаги ще получавате синтактична грешка, която ви предпазва от подобни правописни грешки. Използването на неявни съединения ще ви даде грешка само когато оставите запетая в списъка FROM, но никога, ако пропуснете условие за свързване в WHERE