一个连接查询不知道怎么写

guosheng1987 2007-11-27 09:32:19
table_a
headno partno
10 101-002
20 101-003
30 101-004

table_b
heano partno sizeno
10 101-01 25
20 101-002 23
30 101-02 21

table_c
headno partno sizeno
10 101-002 25
20 101-02 25
30 101-03 20
40 101-001 18

现在通过table_a表从table_b表或者table_c表中取到 sizeno列
但是不知道从哪一个表取,只知道a表的headno和 partno的组合的唯一对应值只会在b,c 两个表中的一个表中存在。
现在以a为主表取到包含sizeno列的一个集合,怎么求

累似于这种
如果
(select pps3200c.headno,pps3200c.p_partno from pps3200c,mst4000c where pps3200c.headno = mst4000c.headno and pps3200c.p_partno = mst4000c.partno)
不空
选择4000c中的sizeno







...全文
89 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
birdie_mas 2007-11-27
  • 打赏
  • 举报
回复
select heano, partno, sizeno from table_a
left join(
(select heano, partno, sizeno from table_b)
union all
(select heano, partno, sizeno from table_c))b on table_a.heano = b.heano and table_a.partno= b.partno
guosheng1987 2007-11-27
  • 打赏
  • 举报
回复
已经知道了

COALESCE((select top 1 sizeno from mst4000c where headno = pps3200c.headno and partno =pps3200c.p_partno),(select top 1 sizeno from mst4100c where headno = pps3200c.headno and partno =pps3200c.p_partno)) as sizeno
这样写。
fa_ge 2007-11-27
  • 打赏
  • 举报
回复

select a.headno,b.partno ,b.sizeno
from table_a a join table_c b
on a.headno=b.headno and a.partno=b.partno

guosheng1987 2007-11-27
  • 打赏
  • 举报
回复
我要选出的结果集是

以a表为主表
headno partno sizeno
10 101-002 25

也就是和c表中的headno 和partno
对应的那个值

但是问题是我不知道是c表中的值和a表对应,还是b表的值和a表对应,
tcxx2008 2007-11-27
  • 打赏
  • 举报
回复
看不懂要干啥
guosheng1987 2007-11-27
  • 打赏
  • 举报
回复
在线等各位救急

34,588

社区成员

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

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