SQL语句

it_sql 2009-09-21 11:40:19
有三个表,
表1
类型
1
2
3
4
...
表2
类型,数量
1,200
2,200
3,400
...
表3
类型,数量,重量
1,200,300
2,400,500
4,200,400
...
我要从表2和表3中找到表1中类型的数量,条件是先在表2中找,要是表2中有的话就要表2的数据,要是表2中没有的话在表3中找,
得到的数据是
类型,数量,重量
1,200
2,200
3,400
4,200,400
怎么写SQL?
...全文
104 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ws_hgo 2009-09-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sdhdy 的回复:]
SQL codeselect a.类型 ,数量=isnull(b.数量,c.数量),c.重量from t1 aleftjoin t2 bon a.类型=b.类型leftjoin t3 con a.类型=c.类型
[/Quote]
处处
好久不见
最近忙啥
sdhdy 2009-09-21
  • 打赏
  • 举报
回复
select a.类型 ,数量=isnull(b.数量,c.数量),c.重量 
from t1 a
left join t2 b on a.类型=b.类型
left join t3 c on a.类型=c.类型
soft_wsx 2009-09-21
  • 打赏
  • 举报
回复
left join
Ava_song 2009-09-21
  • 打赏
  • 举报
回复
这样不对么?
应该是以1为主表,然后,2,3left join
就是这样呀。8楼说的差不多的
华夏小卒 2009-09-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 it_sql 的回复:]
问题是后面的重量没有啊,
[/Quote]


select a.类型 ,数量=isnull(b.数量,c.数量),重量=isnull(b.重量,c.重量) ---再加一个
from t1 a
left join t2 b on a.类型=b.类型
left join t3 c on a.类型=c.类型

it_sql 2009-09-21
  • 打赏
  • 举报
回复
问题是后面的重量没有啊,
华夏小卒 2009-09-21
  • 打赏
  • 举报
回复

select a.类型 ,数量=isnull(b.数量,c.数量)
from t1 a
left join t2 b on a.类型=b.类型
left join t3 c on a.类型=c.类型


---这个应该对的吧
it_sql 2009-09-21
  • 打赏
  • 举报
回复
有没有人啊.>?
it_sql 2009-09-21
  • 打赏
  • 举报
回复
这样写得到的结果是:
1,200,300
2,200,500
3,400
4,200,400
但是我要的是:
1,200
2,200
3,400
4,200,400
怎么?//

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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