INNER JOIN——内联结
前面我们学习了UNION 和INTERSECT 等集合运算,这些集合运算的特征就是以行方向为单位进行操作。通俗地说,就是进行这些集合运算时,会导致记录行数的增减。使用UNION 会增加记录行数,而使用INTERSECT 或者EXCEPT 会减少记录行数。
但是这些运算不会导致列数的改变。作为集合运算对象的表的前提就是列数要一致。因此,运算结果不会导致列的增减。
而JOIN——联结 运算是将其他表中的列添加过来,进行“添加列”的运算。
A:两张表中都包含的列 B:只存在于一张表内的列
所谓联结运算,一言以蔽之,就是“以A中的列作为桥梁,将 B中满足同样条件的列汇集到同一结果之中”
●内联结要点① ——FROM子句
使用关键字 INNER JOIN 就可以将两张表联结在一起了。
小结:进行联结时需要在FROM子句中使用多张表。
●内联结要点② —— ON子句
第二点要注意的是 ON 后面的联结条件,我们可以在 ON 之后指定两张表联结所使用的列(联结键)。
ON 是专门用来指定联结条件的,它能起到与 WHERE 相同的作用。需要指定多个键时,同样可以使用 AND、OR。在进行内联结时 ON 子句是必不可少的(如果没有 ON会发生错误),并且 ON 必须书写在 FROM 和 WHERE 之间。
小结:进行内联结时必须使用ON子句,并且要书写在FROM和WHERE之间。
●内联结要点③ ——SELECT子句
和使用一张表时不同,由于多表联结时,某个列到底属于哪张表比较容易混乱,因此采用“< 表的别名 >.< 列名 >”的形式来指定列
小结:使用联结时SELECT子句中的列需要按照“<表的别名>.<列名>”的格式进行书写。
内联结和WHERE子句结合使用
像这样使用联结运算将满足相同规则的表联结起来时,WHERE、GROUP BY、HAVING、ORDER BY 等工具都可以正常使用。
posted on 2021-01-27 22:05 boiled_iron 阅读(222) 评论(0) 编辑 收藏 举报