SQL问题求教
做了一个计算机的表tab1
--------------------------------------------
computerid(计算机编号 int ) computerpart(计算机配件 varchar)
1 1,2,3
5 205,100,52
--------------------------------------------
配件表tab2
--------------------------------------------
partid(计算机配件ID INT\INDEX\KEY\NOT NULL) partname(名称 varchar)
1 philips display
2 two birds keyboard
3 westdata harddisk
--------------------------------------------
现在我想的到计算机1的配件表,于是
我select partname from tab2 where id in (select computerpart from tab1 where id=1)
语句执行得到的结果如下
select partname from tab2 where id in ('1,2,3')
但提示不能转换INT到varchar.象这种问题该怎么处理?
------解决方案--------------------select b.partname from tab1 a,tb2 b
where id=1 and charindex(','+rtrim(b.partid)+',',','+a.computerpart+',')>0
------解决方案--------------------SQL code
select partname from tab2 where charindex(+','ltrim(id)+',', ','+'1,2,3'+',')>0
------解决方案--------------------
这个表设计不合理啊,
computerid(计算机编号 int ) computerpart(计算机配件 int)
1 1
1 2
1 3
5 205
5 100
5 52
--------------------------------------------
配件表tab2
--------------------------------------------
partid(计算机配件ID INT\INDEX\KEY\NOT NULL) partname(名称 varchar)
1 philips display
2 two birds keyboard
3 westdata harddisk
我select partname from tab2 where id in (select computerpart from tab1 where id=1)