有2张表
一个表(A表)的一个字段包含IP信息  还有个表(B表)是一个IP 对应一个信息
2张表都有一个IP字段   可是A表的IP有可能和B表的IP是同一个IP段 就是说A表
字段1    字段2
杀人    192.168.0.2
放火    192.168.9.3
抢劫    129.99.99.3B表
字段1    字段2
店1     192.168.0.88
店2     192.168.9.88
店3     129.99.99.88我现在需要的结果是这样
字段1    字段2         字段3
杀人    192.168.0.2     店1
放火    192.168.9.3     店2
抢劫    129.99.99.3     店3

解决方案 »

  1.   

    select A.字段1,A.字段2,B.字段1 from A left outer join B on A.字段2=B.字段2
      

  2.   

    create table A(字段1 varchar(20),字段2 varchar(20))
    create table B(字段1 varchar(20),字段2 varchar(20))insert A select '杀人','192.168.0.2'
    union all select '放火','192.168.9.3'
    union all select '抢劫','192.168.99.3'insert B select '店1','192.168.0.88'
    union all select '店2','192.168.9.88'
    union all select '店3','192.168.99.88'
    union all select '店4','192.168.10.88'select A.字段1,A.字段2,字段3=B.字段1 from A left join B
    on left(A.字段2,len(A.字段2)-len(right(A.字段2,charindex('.',reverse(A.字段2)+'.')-1))-1)=
    left(B.字段2,len(B.字段2)-len(right(B.字段2,charindex('.',reverse(B.字段2)+'.')-1))-1)drop table A,B字段1                  字段2                  字段3                  
    -------------------- -------------------- -------------------- 
    杀人                   192.168.0.2          店1
    放火                   192.168.9.3          店2
    抢劫                   192.168.99.3         店3(所影响的行数为 3 行)
      

  3.   

    select a.标识id,a.字段1,a.字段2,b.标识id,b.字段1, from a表 a inner join b表 b on a.标识id=b.标识id order by a表.字段1 asc  
    试试