|
|
|
| Есть запрос и связь между двумя таблами
SELECT c.*,g.cc FROM comm c,geoip g
where c.ip_num BETWEEN g.start AND g.end limit 10
|
Но в табле geoip может не быть диапазона для записи, из таблы comm
В оракле это решается очень просто
SELECT c.*,g.cc FROM comm c,geoip g
where c.ip_num BETWEEN g.start(+) AND g.end(+) limit 10
|
В результате в поле g.cc будет Нулл.
Сделал Джоином
SELECT c.*,g.cc FROM comm c
left join geoip g on c.ip_num BETWEEN g.start AND g.end
where c.previd=3256
|
Всё работает, на ацки долго отрабатывает, может что не правильно или можно сделать по другому? | |
|
|
|
|
|
|
|
для: himic
(17.11.2008 в 11:37)
| | Вообще в классическом SQL такие вещи через LEFT JOIN и решаются... У вас таблицы индексированы? | |
|
|
|
|
|
|
|
для: cheops
(17.11.2008 в 11:41)
| | Да индексированны, там где без джоин всё работает быстренько.
Могу сказать что табла geoip очень большая. Тыщь сто записей | |
|
|
|