问题描述:在开发中 两个表进行关联有两种方式,一是通过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 | type |
1 | 1 |
2 | 2 |
3 | 3 |
id | type |
1 | 4 |
4 | 1 |
首先执行 SELECT A.*,B.* FROM A, B
结果:
id | type | id1 | type1 |
1 | 1 | 1 | 4 |
1 | 1 | 4 | 1 |
2 | 2 | 1 | 4 |
2 | 2 | 4 | 1 |
3 | 3 | 1 | 4 |
3 | 3 | 4 | 1 |
然后加上where条件 SELECT A.*,B.* FROM A, B WHERE A.ID=B.ID
结果:
id | type | id1 | type1 |
1 | 1 | 1 | 4 |
进行左连接SELECT A.*,B.* FROM A LEFT JOIN B ON B.ID=A.ID
结果:
id | type | id1 | type1 |
1 | 1 | 1 | 4 |
2 | 2 | null | null |
3 | 4 | null | null |
总结:由于没有系统的sql学习,对这些基础的概念很模糊,自己动手试验一下就会对概念理解更加深刻。
多实践,多动手。