2016-04-21 24 views
1

在MySQL中,我发现natural join语法是:Mysql:如何使用`join_condition`自然加入?

`table_reference NATURAL [{LEFT|RIGHT} [OUTER]] JOIN table_factor`, 

但其他join类型,如innerouter加入可以使用join_conditon,像语法:

`table_reference {LEFT|RIGHT} [OUTER] JOIN table_reference join_condition`, 

所以我怎样才能在使用join_conditionnatural join?有一些替代品吗?

回答

2

自然连接具有隐式连接条件,在具有相同名称的所有列上相等。

如果您想要其他连接条件,请勿使用自然连接。如果自然连接的隐式连接条件是您想要的,请使用它。一般来说,如果你不使用自然连接并使连接条件明确,那么每个人都可能更容易理解。

+0

但是我在3.3.3节的 Natural阅读了'数据库系统概念'一章,有一个select子句'select name,标题 from(instructor natural join teachhes)join course using(course_id );',在书中,它说:>为了提供自然连接的好处,同时避免了错误地将 属性等同的危险,SQL提供了一种自然连接构造形式,它允许您准确指定哪些列应该等同。 @tpdi – zhenguoli

+1

在那个例子中,有两个连接,要教导教师,然后是连接的结果。 '表单...等同'部分正在讨论'join ... on'表单。 – tpdi