最近看同事的代碼,SQL連表查詢的時候不少時候用的是Inner Join,而我以爲對咱們的業務而言,99.9%都應該使用Left Join(還有0.1%我不知道在哪),我用最簡單的方式來描述這二者的區別,直接看圖(有點草啊):性能
個人作法是永遠把查詢主體放在左邊,而後右邊挨個連上要附加的信息,有則連上,沒有則留null,這樣思路是最清晰的。字體
Inner Join跟這個的區別是若是附加表找不到對應ID,那麼這行記錄就不會出現,我在圖中用紅色字體說明了這個區別。(各類Join的方式沒有任何性能上的差異,只有功能上的差異)blog
另一定必定要注意這幾點:索引
我就簡單這麼定了:必定使用Left Join(除非你明確知道本身想要的是Inner Join),連表的列必定是指向另外一張表的主鍵的。效率