1. cross join 就是笛卡爾積
那看起來好象和 inner join 是一樣的,在 SQL 標準中定義的是 cross join 就是沒有條件的 inner join。在 mysql 中,不區(qū)分,這兩個等價。
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
哈哈的日子 閱讀(626)
評論(0) 編輯 收藏