1. cross join 就是笛卡尔积
那看起来好象和 inner join 是一样的,在 SQL 标准中定义的是 cross join 就是没有条件的 inner join。在 mysql 中,不区分,这两个等价。
2. natural (left) join 是把两个表名字一样的列,做相等条件处理,比如:
t1
id1 name
t2
id2 name
那么 select t1.id1, t2.id1, t1.name from t1 natural join t2 就等价
select t1.id1, t2.id1, t1.name from t1 join t2 on (t1.name = t2.name)
自动把一样名称的列(name)做了个相待条件处理,多列也会同时处理。
所以,这两种 join 没人用是有原因的。
cross join 没意义,一般用逗号就可以了。
natural 降低了可读性,不建议使用。
posted on 2011-10-13 18:06
哈哈的日子 阅读(621)
评论(0) 编辑 收藏