Добрый день ALL!
С SQL работаю недавно - потому прошу сильно не пинать.
Проблема следующая:
Есть две таблицы (таблица запросов (from_relay, to_relay) и таблица паритетных сетей (netAddr, netMask)
Сделал выборку записей из таблицы запросов - где to_relay входит в паритетные сети. Это работает нормально
SELECT t1.from_addr FROM request AS t1, paritet as t2 WHERE t2.netAddr = t1.to_relay & ((~(POW(2,32-t2.netMask)-1))&0xFFFFFFFF);
Но вопрос в том - что необходимо сделать обратный запрос, т.е выбрать те записи в которых to_relay не входит в паритетные сети
Написал так:
SELECT t1.from_addr FROM request AS t1, paritet as t2 WHERE t2.netAddr <> t1.to_relay & ((~(POW(2,32-t2.netMask)-1))&0xFFFFFFFF);
В итоге на выходе имею то что нужные записи но они повторяются столько раз - сколько записей в таблице паритетных сетей
Помогите разобраться плиз.
Заранее благодарен