NATURAL JOIN 自動依據相同名稱的欄位來做聯集,方式與INNER JOIN相同,結果略為不同 使用一般JOIN 語句︰ SELECT * FROM occupation AS occ JOIN user_order AS uo ON occ.user_id = uo.user_id 結果︰所有有對應上的欄位都會出現
使用NATURAL JOIN,資料會只會出現叉集後的結果,並且相同的欄位名稱只會出現一次 語句︰ SELECT * FROM occupation AS occ NATURAL JOIN user_order AS uo; 結果︰自動關聯user_id欄位,並只出現叉集後結果
使用NATURAL JOIN並指定個別欄位,相同欄位名稱不會自動出現,但依然可以指定 語句︰ SELECT occ.id, occ.user_id, occ.occupation, occ.salary, uo.id, uo.user_id, uo.order_date, uo.order_status FROM occupation AS occ NATURAL JOIN user_order AS uo 結果︰依照指定查出特定欄位
除了上方所述一般使用之外,NATURAL JOIN還可以加入LEFT or RIGHT來做左右關聯 使用NATRUAL LEFT JOIN 語句︰ SELECT * FROM occupation AS occ NATURAL LEFT JOIN user_order AS uo; 結果︰以occupation為主關聯user_order,並將相同名稱的欄位併成一個
使用NATRUAL RIGHT JOIN 語句︰ SELECT * FROM occupation AS occ NATURAL RIGHT JOIN user_order AS uo; 結果︰以user_order為主關聯occupation,並將相同名稱的欄位併成一個
總結︰如果確定兩個TABLE有相同名稱的欄位(最好只有一個相同欄位),並且確知其資料的關聯性,而你想要的資料結果是叉集,則可使用NATRUAL JOIN。
