据我所知,join语法首先指定了驱动表
我将允许在构建查询时以这种方式思考通常是有用的。然而,事实是INNER JOIN根本没有真正的“驾驶台”。无论从左侧还是右侧开始,结果都是一样的,数据库将使用它发现更有效的一侧作为起点。因此,从功能的角度来看,左与右实现了
没有什么
,我认为大多数数据库类型根本不允许INNER JOIN使用LEFT和RIGHT。
更糟糕的是,从句法的角度来看,允许它可能会造成混淆。如果使用
JOIN
就其本身而言,没有进一步的澄清,我们总是会得到一个INNER JOIN。但是,如果我们说LEFT JOIN或RIGHT JOIN,并省略INNER与OUTER,则连接类型
翻转
,现在这是一个OUTER连接,尽管我们没有对连接的这一部分指定任何新内容。这很容易让不熟悉的人感到困惑。
相对于解释(极为常见的)LEFT JOIN简写,允许LEFT INNER JOIN会特别烦人。也就是说,如果INNER JOIN禁止使用LEFT/RIGHT,则可以指定
任何
join类型,在join前面添加一个额外的关键字
完全没有野心
不能被误认为是不同的JOIN:
内部连接
左加入
正确加入
完全加入
交叉连接
通过这两个关键字,你可以准确地知道它是什么样的连接,没有可能的歧义或误解。。。但前提是INNER JOIN不允许使用左右键。虽然它肯定不是通用的,但这种“最小明确文本”的方法正是我认识的大多数人倾向于写他们的JOIN的方式(如果不添加新信息,为什么要在代码中添加“OUTER”来增加额外的噪音呢?)。