求两个表操作的SQL语句

huayy 2010-01-18 11:49:23
表1结构及数据
ID NAME
1 zhangsan
2 lisi
3 wangwu
4 zhaoliu

表2结构及数据
ID Table_ID
1 1,2
2 2
3 3,4

-------------------------------
如此,目前已得到表1的ID,如何寻找表2 Table_ID包含 表1ID的记录。求SQL 语句
...全文
88 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
huayy 2010-01-19
  • 打赏
  • 举报
回复
今天才发现最后一个回复是错误的,为避免误人子弟,来说明一下。
huayy 2010-01-18
  • 打赏
  • 举报
回复
SQL = "select * from 表2 where ',' + Table_ID + ',' like ',%" + str + "%,'"

搞定,str=得到的ID
jnshijin 2010-01-18
  • 打赏
  • 举报
回复
select * from 表2 where Table_ID in (select ID from 表1)
duwa789 2010-01-18
  • 打赏
  • 举报
回复

select * from table1 where
exists(
select 1 from table2
where ',' + table2.T1_Id + ',' like
',%' + cast(table1.id as nvarchar(10)) + '%,'

)


这个呢,是否满足?抱歉,上面弄反了。。。
huayy 2010-01-18
  • 打赏
  • 举报
回复
或者这问题问得不对,已知道一组数据
1
2
3
4
5
6
如何通过得到的数据去找对应的表2的ID
ID ID2
1 2
2 1,3
3 4,6,5

liuyu520hong 2010-01-18
  • 打赏
  • 举报
回复
select * from 表2 where Table_ID in (select ID from 表1)
引用一楼的SQL,此语句正确.
huayy 2010-01-18
  • 打赏
  • 举报
回复
另外我两个表是在两个不同的数据库中,所以只能先得到表1的数据,再去找表2的数据,不能将SQL语句写在一起
hzpdh 2010-01-18
  • 打赏
  • 举报
回复
select * from 表2 t where exists(select 'a' from 表1 y where instr(t.Table_ID||',',y.id||',')>0)
在后面加“,”是防止取到二异数据,如Table_ID为12,1
huayy 2010-01-18
  • 打赏
  • 举报
回复
我目前是已经得到表1的ID,要通过 Function code(ByVal str As String)这种方式去找表2的ID
2楼兄弟的方法只能找到表2中 第二条记录,如果表2中的数据为“1,2,3,4”这样就找不到了。
duwa789 2010-01-18
  • 打赏
  • 举报
回复

select * from table1 where exists(select 1 from table2 where ',' + cast(table1.id as nvarchar(10)) + ',' like ',' + cast(table2.table_id as nvarchar(10)) + ',')


没测试,不好意思,参考参考。
mxc1225 2010-01-18
  • 打赏
  • 举报
回复

select * from 表2 where Table_ID in (select ID from 表1)

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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