Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.databases.ms-sqlserver > #775

Re: Non-Relating Join Criteria

From "Bob Barrows" <reb01501@NOyahooSPAM.com>
Newsgroups comp.databases.ms-sqlserver
Subject Re: Non-Relating Join Criteria
Date 2011-11-02 09:10 -0500
Organization A noiseless patient Spider
Message-ID <j8rj1n$18m$1@dont-email.me> (permalink)
References <12431962.894.1320242027343.JavaMail.geo-discussion-forums@yqbl36>

Show all headers | View raw


Fred. wrote:
> Transact SQL apparently supports one-sided critera,
> such as the "a.SEL=15" in (1) below. in the join
> expression. I would expect that both (1) and (2)
> would return the same result set, and the examples
> I have tried match this expectation.
>
> My question is whether or not there can be a strong
> reason to prefer one over the other, such as impact
> on the order of evaluation.
>
> CREATE TABLE a (APK int PRIMARY KEY, SEL int, ... )
> CREATE TABLE b (BPK int PRIMARY KEY, AFK int, ... )
>
> (1) SELECT ... FROM a INNER JOIN b
>     ON a.APK=b.AFK AND a.SEL=15
>
> (2) SELECT ... FROM a INNER JOIN b
>     ON a.APK=b.AFK
>     WHERE a.SEL=15
>
There is a nice article about this in BOL (Books Online - it's installed
when you install the client tools).
The short story is:
with inner joins there is no difference - the same query execution plan is
used for both variations.

With outer joins, however, different results can be obtained depending on
where you put the criterion, especially when the predicate applies to the
table on the right side of a left outer join:

 (1) SELECT ... FROM b LEFT JOIN a
     ON a.APK=b.AFK AND a.SEL=15

 (2) SELECT ... FROM b LEFT JOIN a
     ON a.APK=b.AFK
     WHERE a.SEL=15

Back to comp.databases.ms-sqlserver | Previous | NextPrevious in thread | Find similar


Thread

Non-Relating Join Criteria "Fred." <ghrno-google@yahoo.com> - 2011-11-02 06:53 -0700
  Re: Non-Relating Join Criteria Hugo Kornelis <hugo@perFact.REMOVETHIS.info.INVALID> - 2011-11-02 15:08 +0100
  Re: Non-Relating Join Criteria "Bob Barrows" <reb01501@NOyahooSPAM.com> - 2011-11-02 09:10 -0500

csiph-web