SQL之left join、right join、inner join的区别浅析
今天和某朋友聊天,谈到他们公司的一个小问题。如下:
表A设备表,存储MAC地址,省份,城市,区。
表B软件表,存储MAC地址,软件名字。
功能是可以按省份,城市,或者区来查询软件列表。
你猜它现在如何做的?
它通过省份,城市,或者区取得MAC地址,然后查询B表用in查询。
这个很明显是不合理的,处理这种多对多的关系,为什么不用多表联查呢?
链表的方法常用的有3个:(inner)join内部等值连接、leftjoin左连接和rightjoin右连接。
有什么区别呢?怎么用呢?下面是copy的一篇文章:
leftjoin(左联接)返回包括左表中的所有记录和右表中联结字段相等的记录
rightjoin(右联接)返回包括右表中的所有记录和左表中联结字段相等的记录
innerjoin(等值连接)只返回两个表中联结字段相等的行
举例如下:
表A记录如下:
aIDaNum
1a20050111
2a20050112
3a20050113
4a20050114
5a20050115