2014-11-07 75 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的行为方式)。