内连接与这种写法有什么不同 本帖最后由 u013344315 于 2014-01-05 08:48:04 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 进行查询:select * from programinfo ,typeinfowhere programinfo.programtype=typeinfo.id进行内连接查询:select * from programinfo inner join typeinfoon programinfo.programtype=typeinfo.id其实这两种查询虽然写法不同,一个在where中写了条件,一个在on后面写条件,但是本质上是等价的,说白了,都是内链接。 也就是说这2种写法是完全一样的意思,只是写法不同。不过,我建议你用第二种写法,因为第二种写法更加通用,清晰。你现在是2个表的关联,但像我原来的公司,经常写10个表的关联,这个时候通过inner join ...on 的这种写法,明显就清晰多了。而且除了inner join,用的更多的可能就是left join 了,也就是左连接,但是左连接,如果用where的方式写,where * 这种方式在sql server 2005以后,也不支持了,所以还得用left join on的方式来写 除非有什么猫腻,不然两种写法最少在SQLServer2014之前都是等价的,不需要在意这些。一个是旧写法,join的是新写法而已。 一个是等值连接,一个是内连接。效果是相同的,执行效率应该也是一样的。我在学校的时候是用第1种写法,出来工作就用第2种,好像是sql语法标准不一样,现在一直用第2种写法,都习惯了。 select * from tab_a,tab_b等价于select * from tab_a cross join tab_b了解了inner join 及cross join你就明白了! 一样的,均是inner join ... 第一种写法不用where 默认应该是笛卡尔积sql99语法规范中好像不承认这种写法吧,最好写的代码符合规范,这样较为通用 只是两种写法而已,而inner join 这些是现行的国际标准,有些dbms不只是第一种,所以建议使用标准写法 SQL 比例问题 bcp语句用法求助 两个数据库中的表,用触发器做同时更新数据时的问题(条件是要判断被更新或者插入的那个表里面是否有数据) 反转列 很简单的问题,求时候段的!非常急! mdf文件有近40G,而数据库表所有数据量加起来才不到200M,怎么办? 数据库查询效率问题请教讨论。 可以把两个不同表结构的查询放在一起吗? 数据库死锁 关于两张表做同步的问题 高分:sql server 备份复制 安装sql server 2008 怎么回事
select * from programinfo ,typeinfo
where programinfo.programtype=typeinfo.id进行内连接查询:
select * from programinfo inner join typeinfo
on programinfo.programtype=typeinfo.id其实这两种查询虽然写法不同,一个在where中写了条件,一个在on后面写条件,但是本质上是等价的,说白了,都是内链接。
我在学校的时候是用第1种写法,出来工作就用第2种,好像是sql语法标准不一样,
现在一直用第2种写法,都习惯了。
select * from tab_a,tab_b
等价于
select * from tab_a
cross join tab_b了解了inner join 及cross join你就明白了!