2014-11-07 54 views

回答

4

ON部分指定了連接中的兩個表如何關聯(或如何連接)。如果你想省略ON部分,查詢很可能是無效的(儘管它可能在一些寬容的數據庫系統上運行,在這種情況下,你會得到這兩個集合的交叉產品,也被稱爲笛卡爾產品)。

使用沒有任何說明符如INNER,(FULL)OUTER,LEFT,RIGHT或CROSS的JOIN意味着您進行INNER JOIN。

值得注意的是,查詢處理器必須能夠解決在加入毫不含糊使用的列名,如果兩個表包含一列idmatchid查詢將失敗,除非你指定這樣的來源:

SELECT team1, team2 , player 
FROM game JOIN goal ON (game.id = goal.matchid) -- or maybe it's the other way 
WHERE player LIKE 'Mario%'      -- round, game.matchid = goal.id 
2

這是一個連接條件。

如果計算結果爲true,那麼左邊的行與右邊的行連接,產生一個傳遞給結果集的組合行。

如果你忽略它,那麼,根據特定的sql語言,它可能是一個錯誤(例如,microsoft sql server需要你明確地使用CROSS JOIN),否則你可能會得到一個笛卡爾產品(這就是mysql的行爲方式)。