Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Int_20h Гость
|
Добавлено: Сб Апр 20 2002 14:06 Заголовок сообщения: Выборка из таблицы исходя из предыдущего результата |
|
|
Есть 2 таблицы: ips (просто список IP адресов, один столбец IPS_IP) и log (записи посещений в которых есть столбец LOG_IP). Хотелось бы узнать, можно ли в MySQL'е создать такой запрос (один!!!), чтобы тот вывел все поля таблицы log, в которых поле LOG_IP не было бы равно ни одной записи из колонки IPS_IP в таблице ips. |
|
Вернуться к началу |
|
 |
Rel
Зарегистрирован: 20.04.2002 Сообщения: 9 Откуда: Одесса
|
Добавлено: Сб Апр 20 2002 16:51 Заголовок сообщения: Re: Выборка из таблицы исходя из предыдущего результата |
|
|
select ips.ips_ip from ips, log where ips.ips_iplog.log_ip
кажется так, хотя я в SQL-е полный ламер =) |
|
Вернуться к началу |
|
 |
Int_20h Гость
|
Добавлено: Сб Апр 20 2002 17:23 Заголовок сообщения: Re: Выборка из таблицы исходя из предыдущего результата |
|
|
>>select ips.ips_ip from ips, log where ips.ips_iplog.log_ip
Ты имел ввиду 'select ips.ips_ip from ips, log where ips.ips_ip != log.log_ip'?
Не сработает. Прикол в том, что если в таблице ips две записи, скажем 1.1.1.1 и 2.2.2.2, а в таблице log одна запись, скажем 2.2.2.2, то, в принципе, мы ее должны исключить, т.к. такая же запись есть в таблице ips, но что получается - после такого запроса SQL'ем формируется таблица IPS_IP LOG_IP 1.1.1.1 2.2.2.2 2.2.2.2 2.2.2.2
а потом из нее извлекается первая строка, т.к. поля не равны... Вот и выходит, что несмотря на то, что IP 2.2.2.2 есть в таблице ips, строка с этим IP все равно выводится... |
|
Вернуться к началу |
|
 |
Zuiko Гость
|
Добавлено: Вс Апр 21 2002 08:46 Заголовок сообщения: Re: Выборка из таблицы исходя из предыдущего результата |
|
|
select ips.ips_ip from ips where ips.ips_ip not in (select != log.log_ip from log)
В нормальном SQL (ANSI) сработает, а MySQL не знаю, он же "обрезаный". |
|
Вернуться к началу |
|
 |
AlexLexus
Зарегистрирован: 26.04.2002 Сообщения: 6
|
Добавлено: Пн Апр 22 2002 08:12 Заголовок сообщения: Re: Выборка из таблицы исходя из предыдущего результата |
|
|
SELECT log.* FROM log LEFT JOIN ips ON log.LOG_IP = ips.IPS_IP WHERE ((ips.IPS_IP) Is Null)
Работает везде и всегда! |
|
Вернуться к началу |
|
 |
|