日期:2014-05-17  浏览次数:20457 次

联合查询小问题,求大神解决,速结贴
有一个表   provincelist,里面有 ID,provincename  字段,里面有一些省份,
然后有一个 user表,里面有一个province 字段
现在我想查找出   user表里面  ,有字段province  符合provincelist里面的值,现在问题是province字段和provincename的值不相同,不如  province=广东省   而  provincena =广东,我想用like,但有不太行

------解决方案--------------------
用like 怎么不行?
select * from [user] A where exists(select 1 from [provincelist] b where A.province like '%'+provincename+'%' or provincename like '%'+A.province+'%')

------解决方案--------------------
用charindex()试试

还不能解决的话   建议你贴出两个表的结构   还有及条测试数据   以及对应的结果
------解决方案--------------------
where  charindex(provincename,province)>0 or  charindex(province,provincename)>0 
------解决方案--------------------
你表结构有问题,user表里province字段应该保存的是provincelist里的ID,而不应该保存文本。照你现在的做法provincelist表没什么意义了。
建议把user表province值先手工改为与provincelist中provincename一样的值,然后update一下把user表province的值匹配provincelist中ID值,再把province改为int型并设置外键关系