比如
两个表 产品表 和产品类型表
产品表(pro) 有 id 和 proname typeid
类型表(protype) id typename我想要获取产品名称 和类型
1 语句
select proname,(select typename form protype where id=typeid ) as typename from pro
2语句
select proname,typename from pro,protype where pro.typeid=protype.id
或者 join left 或者什么的
改用那个呢
其实我更倾向于第一种。看着舒服,但是不知道用着舒服不,求解@!
两个表 产品表 和产品类型表
产品表(pro) 有 id 和 proname typeid
类型表(protype) id typename我想要获取产品名称 和类型
1 语句
select proname,(select typename form protype where id=typeid ) as typename from pro
2语句
select proname,typename from pro,protype where pro.typeid=protype.id
或者 join left 或者什么的
改用那个呢
其实我更倾向于第一种。看着舒服,但是不知道用着舒服不,求解@!
select proname,typename from pro t1 inner join protype t2 on t1.typeid=t2.id
反而是语义上你应该要注意下的。
外部链接时和全链接时sql server 默认的会去做链接优化,有一个链接提示,是sql server 自动选择的,也可以手动加上,但是我们平时写sql 的时候一般不会加:如neat join, hash join 等等。详细的可以去查看表链接提示
--测试表T_Lock 数据量:236314条
--写法1
SELECT * FROM T_Lock a,T_Lock b
WHERE a.LockId=b.LockId
AND a.LockId<100000
--写法2
SELECT a.LockId,(SELECT LockId FROM T_Lock WHERE LockId=a.LockId ) FROM T_Lock a
WHERE a.LockId<100000返回的执行计划: