https://bbs.csdn.net/topics/390686126
进行查询:
select * from programinfo ,typeinfo
where programinfo.programtype=typeinfo.id
进行内连接查询:
select * from programinfo inner join typeinfo
on programinfo.programtype=typeinfo.id
为什么查询结果会一样?那这两种查询有什么不同?(下图是两种方法的查询结果)
进行查询:
select * from programinfo ,typeinfo
where programinfo.programtype=typeinfo.id
进行内连接查询:
select * from programinfo inner join typeinfo
on programinfo.programtype=typeinfo.id
其实这两种查询虽然写法不同,一个在where中写了条件,一个在on后面写条件,但是本质上是等价的,说白了,都是内链接
也就是说这2种写法是完全一样的意思,只是写法不同。
不过,我建议你用第二种写法,因为第二种写法更加通用,清晰。
你现在是2个表的关联,但像我原来的公司,经常写10个表的关联,这个时候通过inner join …on 的这种写法,明显就清晰多了。
而且除了inner join,用的更多的可能就是left join 了,也就是左连接,但是左连接,如果用where的方式写,where * 这种方式在sql server 2005以后,也不支持了,所以还得用left join on的方式来写
前面一種是2000的寫法.後一種是2005以後的語法.
【框架类|内连接与这种写法有什么不同(很好的讨论)】一个是等值连接,一个是内连接。效果是相同的,执行效率应该也是一样的。
我在学校的时候是用第1种写法,出来工作就用第2种,好像是sql语法标准不一样,
现在一直用第2种写法,都习惯了。
推荐阅读
- mysql中Mysql模糊查询like效率,以及更高效的写法和sql优化方法
- 数据库|数据库(基础SQL)
- mysql|MYSQL数据库主从同步设置
- mysql|【MYSQL数据库】事件(定时器)和触发器
- java|【JAVA通天路】JDBC连接MYSQL数据库
- mysql|MYSQL数据库中表的进阶玩法——表分区
- SQL数据库|MySQL数据库(基础)
- mysql|MYSQL数据库复杂查询练习题(难度适中)
- python|游标的简单使用及案例【笔记二】