sql >> Database >  >> RDS >> Oracle

Oracle outer join met filtervoorwaarde in de tweede tabel

Nee, er is geen voorwaarde waaronder de resultatensets anders zullen zijn.

Maar uw aanname "a.id = b.id(+) heeft geen betekenis" is niet 100% correct. Het heeft een betekenis, omdat het de join definieert, anders zou dit een cartesiaans product zijn van a en b met alle rijen van a en b.name ='XYZ'.

Wat geen effect heeft, is de (+) , omdat de verklaring "semantisch" verkeerd is. Het heeft geen zin om outer join op id te doen, maar om op naam mee te doen.

Meestal is zoiets gewenst:

select  * from a,b where a.id =b.id(+) and b.name(+) = 'XYZ';

Kort voorbeeld op http://www.sqlfiddle.com/#!4/d19b4/ 15




  1. Welke opties heb ik om mijn ORDER BY sneller te maken?

  2. ArrayList herhaalt dezelfde gegevens

  3. Hoe Teamcity te implementeren met PostgreSQL voor hoge beschikbaarheid

  4. Hoe maak je een Postgresql-subquery in select-clausule met join in from-clausule zoals SQL Server?