一个新手对where和left join的疑惑

来源:互联网 发布:怎么区分linux版本 编辑:程序博客网 时间:2024/05/22 08:15

问题描述:在开发中 两个表进行关联有两种方式,一是通过select a.*,b.* from a,b where a.id=b.id 二是select a.*,b.* from a left join b on b.id.=a.id 对此表示疑惑这两者到底有什么区别?

开始探索:首先建立两个表a,b

a表id type112233b表

id type1441


首先执行  SELECT A.*,B.* FROM A, B

结果:idtypeid1type1111411412214224133143341对两表进行了笛卡尔积。

然后加上where条件 SELECT A.*,B.* FROM A, B WHERE A.ID=B.ID

结果:

idtypeid1type11114对笛卡尔积的结果集进行了筛选


进行左连接SELECT A.*,B.* FROM A LEFT JOIN B ON B.ID=A.ID

结果:

idtypeid1type1111422nullnull34nullnull对a表不做改变,将b表满足条件的记录插入到a表中

总结:由于没有系统的sql学习,对这些基础的概念很模糊,自己动手试验一下就会对概念理解更加深刻。

多实践,多动手。



0 0
原创粉丝点击