Я застрял в этом запросе! У меня есть таблица Logs.Customer_Internet_Activity_Information
, которая содержит тестовые данные для клиентов. В таблице есть IP-адрес. В другом таблице Logs.IP
есть startIpnum
и endIpNum
и localID
. startIPnum
- это нижний IP-адрес в диапазоне, а endIpNum
- максимальный IP-адрес в диапазоне. Каждый диапазон имеет локальный идентификатор, который ссылается на город, страну и т. Д.Присоединяйтесь к таблицам BQ с помощью компаратора
Мой запрос пытается найти IP-адреса клиентов в диапазоне, чтобы найти местный идентификатор.
Select t1.email ,t1.IP , t2.Local_ID
from [TablewithcustomerIP address] as t1 cross join [table with IP ranges] as t2
where t1.IP between t2.startIpNum and t2.endIpNum
Не могли бы вы прокомментировать, что делает ваш запрос в настоящее время, и как это отличается от вашего желаемого поведения? –
Я получаю эту ошибку даже при переключении таблиц ... 3.96 - 3.168: Правая таблица оператора JOIN должна быть маленькой таблицей. Переключайте таблицы, если таблица слева меньше, или используйте JOIN EACH, если обе таблицы больше, чем максимум, описанный в http://goo.gl/wXqgHs. – ticketcitymr
Вы пытались сменить свой «JOIN» на «ПРИСОЕДИНЯЙТЕСЬ КАЖДОМУ», как сообщает вам об ошибке? Или, если ваш t1 меньше, попробуйте инвертировать их? И вы говорите, что получаете это, когда вы переключаете таблицы ... когда вы НЕ переключаете их, что вы получаете? – Patrice