我希望获得关于此查询使用何种连接类型的详细信息 。当连接条件是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