2011-05-22 65 views
3

下列sql语句实际上是什么类型的连接?关于连接表的问题

select * 
from table1 tbl1, table2 tbl2 
where tbl1.id = tbl2.id 

如果两个ID都匹配,是否只返回结果?

回答

4

这是一个内部连接。

是的,只有具有匹配ID的记录才会被返回。

这是一样的:

select * 
from table1 tbl1 
inner join table2 tbl2 
    on tbl1.id = tbl2.id 

就个人而言,我更喜欢的INNER JOIN明确的符号。

4

是的,这是内部连接的ANSI-89语法。 ANSI-92定义了[INNER,LEFT等] JOIN关键字。

+0

我认为这不仅仅是一个省略的JOIN关键字,而是一个完全不同的语法:当你使用'[INNER] JOIN'语法时,你应该在'ON'关键字之后而不是' WHERE – 2011-05-22 09:38:31

+0

你是对的,它是ANSI-89语法,它使用逗号分隔表语法和where子句进行连接。编辑帖子。 – jlew 2011-05-23 13:33:17