我希望獲得關於此查詢使用何種連接類型的詳細信息 。當連接條件是where子句時使用的連接類型子句
select table1.column, table2.column
from table1, table2
where table1.key = table2.key
and (some filter conditions)
我希望獲得關於此查詢使用何種連接類型的詳細信息 。當連接條件是where子句時使用的連接類型子句
select table1.column, table2.column
from table1, table2
where table1.key = table2.key
and (some filter conditions)
當你使用這樣的符號:
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)會警告您
hy喬... thanx ...但是當我把這兩個查詢的記錄數itz不匹配 – user3514648 2014-09-30 14:11:25
@ user3514648:請發佈您關於COUNT的查詢 – 2014-09-30 14:13:46
@ user3514648:Joe的回答是正確的,他的查詢完全符合您的查詢的要求。所以這一定是你的錯誤。 – 2014-09-30 14:50:56
使用明確的'join'語法,您不必擔心這些細節。 – 2014-09-30 14:01:28
當你這樣做時,你做一個INNER JOIN。 – d34n5 2014-09-30 14:05:55
我正在使用Oracle DB ...所以這是相同的內部連接...即選擇table1.column,table2.column從表1內部連接table2其中table1.key = table2.key和(一些過濾條件) – user3514648 2014-09-30 14:06:33