查询问题

ameng_2002 2002-11-13 10:12:27
A表:
id filename sendid(字符型)
1 f1 1,2
2 f2 1,3

B表:
id sendid(整型)
1 2

查询结果
filename sendid
f1 2
...全文
29 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ameng_2002 2002-11-28
  • 打赏
  • 举报
回复
hjhing(winding)的方法还有一点漏洞,比如A.sendid=16,B.sendid=6满足charindex((convert(varchar(10),B.sendid)+','),(A.sendid+','))<>0
,但是6并没有包含在里面,所以应该在两边都加一个逗号,在进行比较!
改为:
select A.filename,B.sendid
where charindex(',"+(convert(varchar(10),B.sendid)+','),(','+A.sendid+','))<>0
ameng_2002 2002-11-13
  • 打赏
  • 举报
回复
hjhing(winding)的方法比较满足我的要求
因为如果用like来比较的话,可能有些问题,比如12,18 like '%1%'满足条件,但1没有包含在里面
CSDNM 2002-11-13
  • 打赏
  • 举报
回复
这么多总有一个是你要的!自己慢慢试吧!
CrazyFor 2002-11-13
  • 打赏
  • 举报
回复
select a.filename,b.sendid from b left outer join on a.id=b.id
hjhing 2002-11-13
  • 打赏
  • 举报
回复
改為:
select A.filename,B.sendid
where A.[id]=B.[id]
and charindex((convert(varchar(10),B.sendid)+','),(A.sendid+','))<>0
ameng_2002 2002-11-13
  • 打赏
  • 举报
回复
不好意思,怪我没有说清楚关系
ameng_2002 2002-11-13
  • 打赏
  • 举报
回复
楼上,可能我的问题不是很清楚
我是要找出B表中sendid字段包含在A表中sendid字段的记录
比如2包含在字符串“1,2“ 里面
antelop_yan 2002-11-13
  • 打赏
  • 举报
回复
同意楼上
或者
SELECT A。FILENAME,B。SENDID FORM A INNER JOIN B ON A。ID=B。ID
brook_huang 2002-11-13
  • 打赏
  • 举报
回复
up
CSDNM 2002-11-13
  • 打赏
  • 举报
回复
说清楚呀,这么多字段,什么关系。

可以:
SELECT A.filename,B.sendid
FROM A,B
WHERE A.ID=B.ID

可以:
SELECT A.filename,B.sendid
FROM A,B
WHERE A.sendid LIKE '%'+CAST(B.sendid AS VARCHAR(10))+'%'

也可以:
SELECT A.filename,B.sendid
FROM A,B
WHERE A.sendid =CAST(B.id AS VARCHAR(10))+CAST(B.sendid AS VARCHAR(10))

可能还有!

hjhing 2002-11-13
  • 打赏
  • 举报
回复
select A.filename,B.sendid
where A.filename=B.filename
and charindex((convert(varchar(10),B.sendid)+','),(A.sendid+','))<>0
zhaozhe 2002-11-13
  • 打赏
  • 举报
回复
select a.filename,b.sendid from a,b where a.id=b.id

34,590

社区成员

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

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