Du bör börja använda standard JOIN-syntax. Förutom att den är mer läsbar (åtminstone enligt min mening) skyddar den dig också från oavsiktliga kartesiska anslutningar om du glömmer det faktiska joinvillkoret i WHERE-satsen. Plus att den är portabel över nästan alla DBMS till skillnad från den klumpiga (+)
syntax som används av Oracle (som också har vissa begränsningar som JOIN-syntaxen inte har)
Här är frågan omskriven med explicita (istället för implicita) joins:
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'
Redigera
Det saknade anslutningsvillkoret på od_equipment_type
är precis anledningen till att JOIN-syntaxen är att föredra. Om det avslutande kommatecken i den ursprungliga SQL-koden tas bort, skulle satsen skapa en oönskad kartesisk koppling som kan ha en allvarlig inverkan på servern om de inblandade tabellerna är stora.
Med JOIN-syntaxen får du alltid ett syntaxfel som hindrar dig från sådana stavfel. Att använda implicita sammanfogningar ger dig bara ett fel när du lämnar ett kommatecken i FROM-listan, men aldrig om du missar ett sammanfogningsvillkor i WHERE