首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

两表联系关系不到数据

2012-10-26 
两表关联不到数据表1idvalue1aa2bb3cc4dd5ff表2idpidvalue11,2b123c233,4,5d3表1的 id对应 表2的pid 我需

两表关联不到数据
表1
id value
1 aa
2 bb
3 cc
4 dd
5 ff

表2
id pid value
1 1,2 b1
2 3 c2
3 3,4,5 d3

表1的 id对应 表2的pid 我需要查询的结果是表1的id 出现在表2的pid中就显示数据
我写的sql: select x.* from 表1 as x inner join 表2 as y on x.id in (y.pid)
只会得到 表1 id为3的数据

请问这错在哪里呀? 谢谢

[解决办法]
select x.* from 表1 as x where x.id in (select y.pid from 表2 y)
[解决办法]

SQL code
select x.* from 表1 as x inner join 表2 as y on  CHARINDEX(','+LTRIM(x.id)+',',','+y.pid+',')>0
[解决办法]
select x.* from 表1 as x inner join 表2 as y on x.id in (y.pid)
这个sql比较诡异啊,不报错吗?

CHARINDEX没用过,阿汤哥搞……
[解决办法]
笛卡尔积的运算错了,inner join 和 left join 以及 right join 得出的结果是不一样的。
[解决办法]
探讨

SQL code
select x.* from 表1 as x inner join 表2 as y
on CHARINDEX(','+LTRIM(x.id)+',',','+y.pid+',')>0

热点排行