一个SQL语句的改写

colacoca 2005-08-31 03:52:06
本来上午开了一个帖,大家也给了回复,后来又有新问题,原帖我也不会修改,请帮我看下.谢谢
'SELECT b.name from #t1 a,#t2 b where a.res = b.id'

==>

'SELECT b.name from #t1 a right join #t2 b on a.res = b.id'
--------------------
这里之前简化了写法,本来是
'SELECT a.a,a.b,a.c,c.a,c.b,d.a b.name from #t1 a,#t2 b,#t3 c,#t4 d where 各条件'

改动后, from #t1 a right join #t2 b on a.res = b.id' 这个顺序应该怎么改呢?

--试改成from #t1 a right join #t2 b on a.res = b.id #t3 c,#t4 d where 各条件'

服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: 'john' 附近有语法错误。

--试改成from #t2 b, #t3 c,#t4 d ,#t1 a right join b on a.res = b.id where 各条件'

服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: 'a' 附近有语法错误。
...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
colacoca 2005-09-03
  • 打赏
  • 举报
回复
谢谢,最后用左连接解决.结帖
MorningTea 2005-08-31
  • 打赏
  • 举报
回复
原来的where 后各条件么?那 where ...这个还需要么?
#t1是分别与#t2,#t3,#t4表有相关条件的.
你要明确一个观点,就是你四个表关联必须有个条件,否则就是任何组合,这个不是你要的!
from #t2
inner join #t3 on 条件--必须是关联表#t2 和#t3 的字段,例如:#t2.id = #t3.sn

你自己试试,看看结果就知道啦!



colacoca 2005-08-31
  • 打赏
  • 举报
回复
必须from #t2 b,
inner join #t3 on 条件
inner join #t4 on 条件
inner join #t1 a on 条件
right join b on a.res = b.id
where ...
---这里inner join #t3 on 条件,inner join #t4 on 条件,inner join #t1 a on 条件是原来的where 后各条件么?那 where ...这个还需要么?
#t1是分别与#t2,#t3,#t4表有相关条件的.

或者
from #t2 b, #t3 c,#t4 d ,#t1 a ,b
where (a.res = b.id or b.id is null ) and 其他关联条件

-----这里from #t2 b, #t3 c,#t4 d ,#t1 a ,b(为什么 b 要再写一遍呢)

或者(...from #t2 b, #t3 c,#t4 d ,#t1 a )as T right join b on T.a.res = b.id or b.id is null
------T是新表么?

原帖里面,语句是一定要写成
'SELECT b.name from #t1 a right join #t2 b on a.res = b.id'这样才可以的.
我会一个一个的试试看的.再次感谢
MorningTea 2005-08-31
  • 打赏
  • 举报
回复
--试改成from #t2 b, #t3 c,#t4 d ,#t1 a right join b on a.res = b.id where 各条件'

---多表关联可以用join,也可以不用,但是不能混合!

必须from #t2 b,
inner join #t3 on 条件
inner join #t4 on 条件
inner join #t1 a on 条件
right join b on a.res = b.id
where ...



或者
from #t2 b, #t3 c,#t4 d ,#t1 a ,b
where (a.res = b.id or b.id is null ) and 其他关联条件

或者(...from #t2 b, #t3 c,#t4 d ,#t1 a )as T right join b on T.a.res = b.id or b.id is null
colacoca 2005-08-31
  • 打赏
  • 举报
回复
另我的QQ260771,MSNly3523431@hotmail.com,有人可以加我方便请教么?谢谢啊.

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧