SQL多表查询全解析
1. 多表查询语法对比
在多表查询中,不同的语法使用方式会带来不同的效果和风险。
- SQL-92语法 :使用 INNER JOIN 并搭配 ON 子句,这种语法下遗漏连接谓词的可能性较低。因为 ON 子句对于内连接(和外连接)是必需的,如果遗漏,解析器会报错。示例如下:
INNER JOIN T3
ON T3.col2 = T2.col2
INNER JOIN T4
ON T4.col3 = T3.col3
- SQL-89语法 :在
FROM子句中用逗号分隔所有表名,在WHERE子句中用逻辑与连接所有谓词。这种语法下,误漏谓词的可能性较高,若遗漏可能会导致意外的交叉连接。示例如下:
FROM T1, T2, T3, T4
WHERE T2.col1 = T1.col1 AND T3.col2 = T2.col2 AND T4.col3 = T3.col3
另外,关于 INNER JOIN 和 JOIN ,标准SQL将内连接作为默认类型,所以二者没有区别。同样,在外部连接中, OUTER 关键字是可选的,例
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



