求一条SQL语句

rottenapple 2008-11-27 03:17:24
有两个表,T1,T2, T1里面有三个字段,A,B,C, T2有一个字段M,N,其中A,B,C分别有可能等于M。我想知道所有在A中含有M的纪录并显示出相应的N。
如果一条记录,A,B,C都包含M,那么这条记录B,C像不会显示出来,换句话,A地一行只能对应一个B.N.我用 A=M or B=M or C=m就会出现重复的A,如何实现这个功能?

...全文
79 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果一条记录,A,B,C都包含M,那么这条记录B,C像不会显示出来,换句话,A地一行只能对应一个B.N.我用 A=M or B=M or C=m就会出现重复的A,如何实现这个功能?


A ,B ,C 中都包含M那么只显示A,如果有两列怎么处理,只有1列的话,怎么处理?是不是都只显示A这一列和N这一列?


select a.A,b.M from a,b where a.a = b.m or a.b = b.m or a.c = b.m
dobear_0922 2008-11-27
  • 打赏
  • 举报
回复
--try
select T1.*, N=coalesce(ta.N, tb.N, tc.N)
from T1 left join T2 ta on T1.A=ta.M
left join T2 tb on T1.A=tb.M
left join T2 tc on T1.A=tc.M
where coalesce(ta.N, tb.N, tc.N) is not null
dobear_0922 2008-11-27
  • 打赏
  • 举报
回复
--try
select T1.*, N=coalesce(ta.N, tb.N, tc.N)
from T1 left join T2 ta on T1.A=ta.M
left join T2 tb on T1.A=tb.M
left join T2 tc on T1.A=tc.M
zhangchaokun 2008-11-27
  • 打赏
  • 举报
回复
看的不是很明白,加上unique可以吧
dawugui 2008-11-27
  • 打赏
  • 举报
回复
select distinct t1.* , t2.* from t1 , t2 where t1.a = t2.m or t1.b = t2.m or t1.c = t2.m

dawugui 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 rottenapple 的帖子:]
有两个表,T1,T2, T1里面有三个字段,A,B,C, T2有一个字段M,N,其中A,B,C分别有可能等于M。我想知道所有在A中含有M的纪录并显示出相应的N。
如果一条记录,A,B,C都包含M,那么这条记录B,C像不会显示出来,换句话,A地一行只能对应一个B.N.我用 A=M or B=M or C=m就会出现重复的A,如何实现这个功能?
[/Quote]

select t1.* from t1 , t2 where t1.a = t2.m or t1.b = t2.m or t1.c = t2.m

27,581

社区成员

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

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