sql >> Databáze >  >> RDS >> Oracle

Vnější spojení Oracle s podmínkou filtru na druhé tabulce

Ne, neexistuje žádná podmínka, za které se budou sady výsledků lišit.

Ale váš předpoklad "a.id = b.id(+) nemá žádný význam“ není 100% správný. význam, protože definuje spojení, jinak by se jednalo o kartézský součin aab se všemi řádky z a a b.jméno ='XYZ'.

Co nemá žádný vliv, je (+) , protože výrok je „sémanticky“ chybný. Nemá smysl vnější spojení na id, ale spojení na jméno.

Obvykle se něco takového chce:

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

Krátký příklad na http://www.sqlfiddle.com/#!4/d19b4/ 15




  1. Oracle - Jak udělit uživateli práva k objektům jiného uživatele

  2. Jak přiřadit více ID k jednomu řádku v MySQL?

  3. chyba syntaxe na DECLARE CURSOR FOR

  4. Jaký je rozdíl mezi Seq Scan a Bitmapovým skenováním haldy v postgresu?