2016-06-06 6 views
0

У меня есть таблица LogPixelCall (пример из двух строк):Sql-сервер: обновление всех строк столбцов на основе IP

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 в длинный (так что я должен использовать этот алгоритм преобразования), и он возвращает мне CountryCode (GB, US, AU), затем я сравниваю CountryCode со Страновой таблицей, где я храню страны. Я хочу обновить таблицу данных LogPixelCall вручную с помощью CountryId, потому что раньше этого не было.

Вопрос: Как я могу определить значение поля IIS для IIS, если я знаю ClientIp в LogPixelCall, и я могу использовать IpLookup для получения CountryIsoCode и подключения к стране?

+3

Что вы хотите сказать? У вас есть образец кода? –

+1

Какая база данных? SQL для обновления таблицы из другой таблицы может несколько отличаться в зависимости от типа/версии базы данных. – LukStorms

+0

Я не понял вашего вопроса, но я не могу ответить. Но ваш запрос может выглядеть как «обновление LPC набор lpc.ContryId = ct.Id из LogPixelCall LPC присоединиться IpLookUp иль на Иру. [С] = IpConvertFunction (lpc.ClientIP) присоединиться Страна каратов на ct.code = Иром .ContryIsoCode где lpc.ContryId является нулевой»тип – jean

ответ

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 
Смежные вопросы