select * from a,b where a.bd=1 and charindex(','+a.aname+',', ','+b.bname1+',' +b.bname2 +','+b.bname3+',') > 0
我觉得是char的话还是用 or 快些
这样写 (一)select a.aname from a,b where bd=1 and ((a.aname in (b.bname1)) or (a.aname in (b.bname2)) or (a.aname in (b.bname3))) 不过这个和你那个一样返回的有重复纪录这样就没有重复记录了 (二)select * from a where bd=1 and aname in (select bname1 from b union select bname2 from b union select bname3 from b) 但是效率不如(一)高
charindex(','+a.aname+',', ','+b.bname1+',' +b.bname2 +','+b.bname3+',') > 0
(一)select a.aname from a,b where bd=1 and ((a.aname in (b.bname1)) or (a.aname in (b.bname2)) or (a.aname in (b.bname3)))
不过这个和你那个一样返回的有重复纪录这样就没有重复记录了
(二)select * from a where bd=1 and aname in (select bname1 from b union select bname2 from b union select bname3 from b)
但是效率不如(一)高