2014-09-30 109 views
2

我希望獲得關於此查詢使用何種連接類型的詳細信息 。當連接條件是where子句時使用的連接類型子句

select table1.column, table2.column 
from table1, table2 
where table1.key = table2.key 
and (some filter conditions) 
+1

使用明確的'join'語法,您不必擔心這些細節。 – 2014-09-30 14:01:28

+1

當你這樣做時,你做一個INNER JOIN。 – d34n5 2014-09-30 14:05:55

+0

我正在使用Oracle DB ...所以這是相同的內部連接...即選擇table1.column,table2.column從表1內部連接table2其中table1.key = table2.key和(一些過濾條件) – user3514648 2014-09-30 14:06:33

回答

3

當你使用這樣的符號:

table1,table2你建立一個潛在CROSS JOIN,但你已經把WHERE條款的條件table1.key = table2.key所以你CROSS JOIN成爲INNER JOIN

我建議你使用有關加入一個明確的符號,而不是使用逗號喜歡你的查詢寫:

select table1.column, table2.column 
from table1 
inner join table2 
on table1.key = table2.key 
where (some filter conditions) 

這樣你exactely知道要使用哪個JOIN和SQL語法分析程序,如果你錯過某些子句(如ON)會警告您

+0

hy喬... thanx ...但是當我把這兩個查詢的記錄數itz不匹配 – user3514648 2014-09-30 14:11:25

+0

@ user3514648:請發佈您關於COUNT的查詢 – 2014-09-30 14:13:46

+0

@ user3514648:Joe的回答是正確的,他的查詢完全符合您的查詢的要求。所以這一定是你的錯誤。 – 2014-09-30 14:50:56