关于Tsql语言的问题,好像left join不支持on (c.routinid=d.routinid and d.machineid=c.machineid) 这种语句

AlickYue 2008-08-07 09:40:22
我有4个表a,b,c,d
a
machineid
a1
b
routinid
b1
c
machineid
routinid
c1
d
machineid
routinid
d1

如何实现如下效果

select c1.*,d.d1,a.a1.b.b1 from c left join a on a.machineid=c.machineid
left join b.routinid=c.routinid left join d on (c.routinid=d.routinid and d.machineid=c.machineid)
好像left join不支持on (c.routinid=d.routinid and d.machineid=c.machineid) 这种语句
如果想实现类似效果怎么做呢?




...全文
93 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
brother2605 2008-08-07
  • 打赏
  • 举报
回复
老大,join 的时候你的条件只能是相关联的这2个表或查询所包含的字段,如果你要join a和b表,而条件中却加入他们之外的表的字段,肯定是不能的。
colafei 2008-08-07
  • 打赏
  • 举报
回复
支持
AlickYue 2008-08-07
  • 打赏
  • 举报
回复
我在access里用的。。当然 我加了() 在这懒得加了。。大概就是这么个意思。。
我想到办法解决这个问题了,谁若能告诉我sql server支持 left join on ( a=b and c=d) 这种写法。我就把分给谁
bwu851 2008-08-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zoffor 的回复:]
怎么会不支持
[/Quote]
wgzaaa 2008-08-07
  • 打赏
  • 举报
回复
错了一大堆
select c.*,d.d1,a.a1,b.b1 from c left join a on a.machineid=c.machineid
left join B ON b.routinid=c.routinid left join d on (c.routinid=d.routinid and d.machineid=c.machineid)
jasonren 2008-08-07
  • 打赏
  • 举报
回复
select c1.*,d.d1,a.a1.b.b1 from c left join a on a.machineid=c.machineid 
left join b.routinid=c.routinid left join d on (c.routinid=d.routinid and d.machineid=c.machineid)
好像left join不支持on (c.routinid=d.routinid and d.machineid=c.machineid)

这里错了.改成
left join b on b.routinid=c.routinid left join
zoffor 2008-08-07
  • 打赏
  • 举报
回复
怎么会不支持

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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