我有一个表LogPixelCall(两行示例):
1 d5104006-8a82-4dfe-b6ca-587d25e869e9 1 2 2016-03-07 16:31:41.997 **92.26.242.166** NULL
2 5a5ffea2-3a70-4138-aeb7-4dd94900ef27 1 2 2016-03-07 17:39:57.557 **185.28.19.174** NULL
其中粗体是IP,最后一个NULL字段是来自其他表的CountryId。
现在我有Iplookup表,我必须将转换后的IP传递给long(所以我必须使用该转换算法)并返回CountryCode(GB,US,AU),然后我将CountryCode与Country表进行比较,其中我存储国家。我想用CountryId手动更新LogPixelCall信息表,因为之前没有。
问题:基于提供的数据库架构,如果我知道LogPixelCall中的ClientIp,如何更新LogPixelCall CountryId NULL字段,我可以使用IpLookup获取CountryIsoCode并与Country连接?
答案 0 :(得分:0)
update LogPixelCall set CountryId = c.Id
--select * /*Check first to make sure */
from LogPixelCall lpc
inner join IpLookup ip on lpc.ClientIp between ip.From and ip.To
inner join Country c on c.Code = ip.CountryIsoCode