sql >> Database teknologi >  >> RDS >> Oracle

Oracle ydre samling med filtertilstand på det andet bord

Nej, der er ingen betingelse, hvorunder resultatsættene vil være anderledes.

Men din antagelse "a.id = b.id(+) har ingen betydning" er ikke 100 % korrekt. Det har en betydning, fordi den definerer sammenføjningen, ellers ville dette være et kartesisk produkt af a og b med alle rækker fra a og b.name ='XYZ'.

Hvad der ikke har nogen effekt er (+) , fordi udsagnet er "semantisk" forkert. Det giver ingen mening at ydre join på id, men at deltage på navn.

Normalt ønskes sådan noget:

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

Kort eksempel på http://www.sqlfiddle.com/#!4/d19b4/ 15




  1. PostgreSQL Få et tilfældigt datetime/timestempel mellem to datetime/timestamp

  2. Vinduesfunktioner og mere lokal aggregering

  3. fejl under indsættelse af LARGE volume data i mysql ved at bruge node.js (fejlkode:'ECONNRESET')

  4. FIND_IN_SET() ækvivalent i SQL Server