我已经上网大约一个小时了,但我似乎无法从其他地方得到直接的答案。我有几个关于连接的问题,希望你能回答。我会尽量简单。
假设我有两张桌子:
A B
- -
1 3
2 4
3 5
4 6
值 (1, 2) 是 A 独有的,(3, 4) 是常见的, (5, 6) 是 B 独有的。
现在我了解了内部和外部(左和右)连接的目的。我的问题与编写它们的顺序有关。
例如,以下两个查询会产生相同的结果吗?
SELECT * FROM A LEFT JOIN B ON A.A = B.B
SELECT * FROM B LEFT JOIN A ON B.B = A.A
问题:
是什么决定了左侧将列出所有条目的主表?是我在“LEFT JOIN”语句两侧写表的顺序吗?还是基于 ON 条件下的表格顺序?
ON 条件的顺序是否重要?还是仅用于将特定列上的表格链接在一起以进行比较?
当我有两个以上的表时会发生什么?假设有一个表 C,我想 LEFT JOIN 到执行 A LEFT JOIN B 的结果:
SELECT * FROM A LEFT JOIN B ON A.A = B.B LEFT JOIN C ON ....
那里有什么?是CC = AA吗?还是CC = BB?
我想问题是,任何额外的 LEFT JOIN 都具体加入了哪个表?
连接的左侧是什么?