第一个问题:左外连接和右外连接有什么区别?
其实不论左外连接还是右外连接,都是外连接。外连接所能查出来的数据是这样的:主表中的所有数据,以及从表中满足连接条件的数据
而左外连接和右外连接的不同就在于主表的位置不同。左外连接:写在左边的是主表,左外连接:写在右边的是主表(所谓的左边和右边,参照物就是left join 或者right join关键字)
所以,左外连接:左表(主表)中的数据无论满不满足连接条件,都会全部显示,而右表(从表)只显示满足连接条件的数据;右外连接:右表(主表)中的数据无论满不满足连接条件,都会全部显示,而左表(从表)只显示满足连接条件的数据。
第二个问题:内连接与等值连接有什么异同点?
相同点:所能查询出来的数据是一样的,也可以说是功能相同。
不同点:语法不同,内连接需要用inner join关键字
效率的话,内连接应该相对高一些,数据少的时候基本看不出来差 距。
第三个问题:在分组查询时,使用having子句和where子句有什么区别?
where是在分组前对数据进行筛选,即先筛选出满足where条件的数据,然后在对这些数据进行分组,所以where只能是放在group by子句前面的;
having是在分组后对数据进行筛选,即先分组,然后再筛选,所以having是放在group by后面的,对分组后的数据进行条件过滤。
多表连接的三个问题(左右连接、内连接、等值连接、having\where)
最新推荐文章于 2025-03-25 18:31:42 发布