Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL и NOT IN / 4 сообщений из 4, страница 1 из 1
12.05.2004, 15:00
    #32514864
Ape
Ape
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и NOT IN
MySQL 5.0 или 4.1.1
Запрос

SELECT * FROM t1 WHERE t1.f1 NOT IN (SELECT f2 FROM t2)

выдаёт произвольный набор данных совершенно не отвечающий
заданным критериям.
Например:

t1
Key Street
---------------
1 Абрамяна ул.
2 Афанасова ул.
3 Афганская ул.
4 Баграмяна ул.
5 Багратиона ул.
6 Болотная ул.
. ........
. ........
1000 Яровая ул.

t2
Key StreetKey
-----------------
1 2
2 5

SELECT * FROM t1 WHERE Key NOT IN (SELECT StreetKey FROM t2);

Key Street
--------------------
Null Null

Если вместо второго запроса поставить значение, то работает правильно.

SELECT * FROM t1 WHERE Key NOT IN (2, 5);

Key Street
---------------
1 Абрамяна ул.
3 Афганская ул.
4 Баграмяна ул.
6 Болотная ул.
. ........
. ........
1000 Яровая ул.

Что за хрень такая? Может кто знает в чём грабель?

Я понимаю, что можно извратиться и переписать запрос через LEFT JOIN, но мне интересно почему не работает NOT IN (SELECT... Ведь NOT IN (2, 5) работает.

SELECT * FROM t1 WHERE NOT EXISTS(SELECT StreetKey FROM t2 WHERE t2.StreetKey=t1.Key)

работает правильно!
...
Рейтинг: 0 / 0
12.05.2004, 16:38
    #32515068
sirsergio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и NOT IN
У меня куча моменто в отчетах, где используется "NOT IN", посему решил проверить. Состряпал быренько запросцы и вот:

1) select kodtip, count(kodtip)
from frut_t_adrt
where kodtip not in (select kodbank from frut_t_bank)
group by kodtip
kodtip count(kodtip)

2) select kodtip, count(kodtip)
from frut_t_adrt
group by kodtip

3) select kodbank from frut_t_bank

Результаты во вложенном файле (jpg-шник).

Так что, как не трудно убедиться, все работает OK!!!
Я использовал count(), чтоб убедиться, что все значения правильно отфильтровало.
Я использую MySQL5.0.0a, тип таблиц MyISAM.
Если хош могу дать детальное описание вышеиспользованных таблиц.
...
Рейтинг: 0 / 0
14.05.2004, 13:42
    #32518069
Ape
Ape
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и NOT IN
sirsergioЯ использую MySQL5.0.0a, тип таблиц MyISAM.

Интересный момент! Я использую InnoDB.
...
Рейтинг: 0 / 0
14.05.2004, 14:03
    #32518158
Marat_L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и NOT IN
5.0 и 4.1 еще альфы
Им просто положено иметь какие-нибудь глюки.

Глянь сюда http://bugs.mysql.com/bug.php?id=3646
Твой случай?
Пишут что будет пач.
И вообще любители альф - чаще заходите на http://bugs.mysql.com

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL и NOT IN / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]