Hi,
This is a sample database table
TableA
============================
aID int identity(1,1) primary key
aName varchar(30)
TableB
===========================
bID int identity(1,1) primary key
bTitle varchar(30)
aID int references TableA(aID)
TableC
===========================
cID int indentity(1,1) primary key
cCategory varchar(30)
bID int references TableB(bID)
Here I got two query, are them the same?
Select A.aName, B.bTitle, C.cCategory
From TableA A, TableB B, TableC C
Where A.aID = B.aID And B.bID = C.cID
and
Select A.aName, B.bTitle, C.cCategory
From TableA A Join TableB B On A.aID=B.aID
Join TableC On B.bID=C.cID
Are those two the same?
And what is the different of JOIN and LEFT OUTER JOIN? Any other JOIN?
Millions Thanks!
Usually they are the same.
However, the first form is 'old' and will be soon deprecated.
Use the second form.
For more details about JOIN, refer to Books Online, Topics: Using Joins, JOIN
|||hi ,
If you measure this, you will most likely discover that the two versions
use the exact same access plan. SQL Server tries very hard to optimize a
query, and in that process, a where clause which equates columns from two
tables will be converted to an inner join.
please check this link for the second question.
http://en.wikipedia.org/wiki/Join_(SQL)
hope, it clear
|||Thanks for leading me to the source.|||The definitive 'source' is Books Online.
Wikipedia is often a good source of information also, but I would trust Books Online more than a wiki -especially if a job or exam was dependent upon the 'answer'.
|||Books online can sometimes be complicated, but I agree with your answer.
No comments:
Post a Comment