这段时间写了不少多表查询,难得有一些体会,赶紧记录下来
一、表数据过滤
当你想要查询两个表中都拥有的数据时可以使用 inner join
二、表数据转换
当你想用另一个表的数据替换当前表数据时可以使用 left join (right join)
三、join 的负面影响
不管是inner join 还是left join (right join) ,当两个表中都存在关联数据时,两个表数据做笛卡尔积相连
如果其中一个表中关联的字段数据不唯一时,会导致另外一个表的数据重复,所以 join 查询时尽量先将两个表的数据去重,并做好数据重复时的考虑
四、on 语句
inner join 后面的 on 条件作用于两个表,剔除掉两个表中不满足条件的数据
Left join (right join) 后面的 on 语句只作用于副表,主表数据不管是否满足条件都保留,剔除副表不满足条件的数据,当主表数据找不到匹配时,副表数据区域为 null
本文探讨了多表查询在数据库操作中的应用,包括如何使用innerjoin进行数据过滤,leftjoin(rightjoin)实现数据转换,并提醒注意join可能导致的数据重复问题。同时,详细解释了on语句在不同类型的join查询中的作用,强调在执行查询前应先去除数据重复并考虑可能的数据一致性问题。
598

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



