有两个表,一个是ip地理位置数据库 `ip`,如下
"start" "end" "s_s" "e_s" "address" "c"
"30212096" "30218751" "1.205.0.0" "1.205.25.255" "贵州省遵义市" "电信"
"30218752" "30219007" "1.205.26.0" "1.205.26.255" "贵州省遵义市习水县" "电信"
"30219008" "30227199" "1.205.27.0" "1.205.58.255" "贵州省遵义市" "电信"
"30227200" "30227455" "1.205.59.0" "1.205.59.255" "贵州省贵阳市" "电信"
"30227456" "30244863" "1.205.60.0" "1.205.127.255" "贵州省遵义市" "电信"
....另有一表  `users`,其中一列地ip地址
"email" "ip_s" "ip"
"[email protected]" "123.119.131.153" "2071430041"
"[email protected]" "222.190.112.226" "3737022690"
"[email protected]" "124.128.217.114" "2088819058"
"[email protected]" "116.226.65.241" "1960985073"
......
现在需要查出第二张表 `users`里ip对应的地理地址,请问是否可以使用一条语句实现?
ip地址 对应地址

解决方案 »

  1.   

    select *
    from users u,ip i
    where u.ip between i.start and i.end
      

  2.   

    select A.*,B.* from users A INNER JOIN ip B
    ON A.ip between B.start and B.end
      

  3.   


    语句还能这样写,帅呆!
    版主老大太彪悍了!
    一直在想怎么join连接,但失败了。
      

  4.   

    尝试了半天 > < 联用,连接三个表实现join,越写越复杂,结果是执行不动。
    原来可以在join里使用between
    感谢版主!