sql >> Database >  >> RDS >> Oracle

In Oracle, met betrekking tot syntaxis - hoe converteer ik de (+) syntaxis naar moderne conventionele JOIN?

Zonder het schema te zien, vind ik het moeilijk, maar dit zou je in de goede richting moeten zetten:

 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;

Voor een INNER JOIN je kunt gewoon zeggen JOIN hoewel ik denk dat ik expliciet INNER . zeg bevordert de leesbaarheid. Ik merk ook op dat het gegeven voorbeeld WHERE 1=1 . heeft wat overbodig is.



  1. Laat alleen de eerste 50 records in de SQL-database en verwijder de rest

  2. Wat is een Postgres-sessie?

  3. Laravel-query om resultaten te krijgen met ten minste één element van een array?

  4. MySQL - Twee dingen tellen met verschillende voorwaarden