日期:2014-05-18  浏览次数:20431 次

急急急!关于2张表的查询问题
有2张表。一张是a表,表中有几十万条数据,存放的是客户的信息。表结构如下图

另一张是b表,表中有几千条数据,存放的是一些自定义的关键词。表结构如下图


已知客户的编号,通过a表查询出客户的基本信息(如a图中的xj字段中的内容)。现在想通过a表的xj字段中的内容,查询b表,通过xj这个字段的内容与b表中keyword这个字段匹配,想得到b表中bh,mc这个字段的内容。请问这样的sql语句如果写?那位朋友知道。 如:a表中xj字段的内容为“慢性颈、腰肌劳损 ” 而 b表中keyword这个字段内容为“腰肌劳损” 因为a表xj字段中有b表的keyword字段中的关键字,所以 得到编号为:856,名称为: 慢性腰肌劳损 这样2个字段内容。

------解决方案--------------------
SQL code

select b.BH,b.MC
from  a inner join b on charindex(b.keyword,a.xj)>0
where a.lxbh='03'

------解决方案--------------------
SQL code
select * from b where exists(select 1 from a where xj like '%'+b.keyword+'%' 
)

------解决方案--------------------
或自己在條件里加其它條件
select * from b where exists(select 1 from a where patindex('%'+b.keyword+'%',xj)>0 )
------解决方案--------------------
SQL code
select b.BH,b.MC
from  a , b 
where a.xj like '%'+b.keyword+'%'