A表:Ids取的B表中的id,以,隔开
selName Ids
a 001,002,003B表
Id Naics
001 236115
002 421122
003 221100C表
Naics Zip Locality
236115 9210 Local1
421122 2358 Local2
221100 9402 Local3现在的参数是A表中的"a"与C表中的9210,2358,9402如何把Local1,Local2,Local3搜索出来呢?
selName Ids
a 001,002,003B表
Id Naics
001 236115
002 421122
003 221100C表
Naics Zip Locality
236115 9210 Local1
421122 2358 Local2
221100 9402 Local3现在的参数是A表中的"a"与C表中的9210,2358,9402如何把Local1,Local2,Local3搜索出来呢?
WHERE C.Naics = B.Naics
AND PatIndex('%'+B.ID+'%' ,A.IDS)>0
WHERE C.Naics = B.Naics
AND PatIndex('%'+B.ID+',%' ,A.IDS)>0 这样精确一点。
再说B表中的id是从1自动编号到20000的,你这样会不会有错误呢?
select C.* from C ,A,B
WHERE C.Naics = B.Naics
AND PatIndex('%'+B.ID+',%' ,A.IDS+',')>0
因为如果不加的话 PatIndex('%'+B.ID+'%' ,A.IDS)
如果要查200那么1200,2200,3200...都出来了,所以加个,号
用PatIndex('%'+B.ID+',%' ,A.IDS)
就不会出现这样的情况,但是A的ids中最后一个是没有,号的,所以要预先加上。最后用:select C.* from C ,A,B
WHERE C.Naics = B.Naics
AND PatIndex('%'+B.ID+',%' ,A.IDS)>0 AND A.selName = '******'
from A jnner join B
on A.Ids=B.Ids inner join
on B.Naics=C.Naics
楼主: 知道a表中的selName,再根据selName来找ids。
cpp2017(慕白兄)给的不只是查1个
你要的话再加个and A.selName = 'a'
------------------------
http://fenglin.xland.cn
------------------------
再看看这个吧,谢谢了。