sql >> Databasteknik >  >> RDS >> Oracle

I Oracle, när det gäller syntax - hur konverterar jag (+)-syntaxen till modern konventionell JOIN?

Utan att se schemat tycker jag att det är svårt men detta borde sätta dig i rätt riktning:

 FROM apps.po_requisition_lines_all prl 
 INNER JOIN apps.po_requisition_headers_all prha ON prl.requisition_header_id = prha.requisition_header_id 
 INNER JOIN po.po_req_distributions_all     prda ON prda.requisition_line_id  = prl.requisition_line_id
 LEFT  JOIN po.po_distributions_all         pda  ON prda.distribution_id      = pda.req_distribution_id 
-- I note from the example provided that this is a right join
-- Without seeing the schema, it looks to me as though it should be left
-- As I say say, without seeing the schema, I probably shouldn't pass comment
 RIGHT JOIN po.po_headers_all               pha  ON pha.po_header_id          = pda.po_header_id;

För en INNER JOIN du kan bara säga JOIN även om jag tror att det uttryckligen säger INNER underlättar läsbarheten. Jag noterar också att exemplet har WHERE 1=1 vilket är överflödigt.



  1. MySQL:välj * från tabellen där col IN (null, ) är möjligt utan ELLER

  2. Hantera icke-existerande värden i sql-frågeuttryck för ssrs-diagram

  3. Hur man konverterar tidsstämpel med millisekunder till datum i Oracle

  4. Försöker utföra MINUS-operation i MySQL