那看起來好象和 inner join 是一樣的,在 SQL 標(biāo)準(zhǔn)中定義的是 cross join 就是沒有條件的 inner join。在 mysql 中,不區(qū)分,這兩個(gè)等價(jià)。
2. natural (left) join 是把兩個(gè)表名字一樣的列,做相等條件處理,比如:
t1
id1 name
t2
id2 name
那么 select t1.id1, t2.id1, t1.name from t1 natural join t2 就等價(jià)
select t1.id1, t2.id1, t1.name from t1 join t2 on (t1.name = t2.name)
自動(dòng)把一樣名稱的列(name)做了個(gè)相待條件處理,多列也會(huì)同時(shí)處理。
所以,這兩種 join 沒人用是有原因的。
cross join 沒意義,一般用逗號(hào)就可以了。
natural 降低了可讀性,不建議使用。