powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / NOT IN не возвращает значения
3 сообщений из 3, страница 1 из 1
NOT IN не возвращает значения
    #39179327
Fitter2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,
Столкнулся с такой проблемой

запрос
Код: sql
1.
2.
3.
SELECT u.id FROM users u
WHERE  u.id not in (SELECT l.user_id FROM mlinks l 
) 



возращает NULL
А запрос к той же таблице

Код: sql
1.
2.
3.
SELECT u.id FROM users u
WHERE NOT EXISTS (SELECT 1 FROM links l 
WHERE l.user_id = u.id )



Возвращает много строк , как и положено.

Поля users.id and links.user_id INT(64).
ЧТо посмотреть или как проверить почему так происходит с этими таблицами?

Спасибо.
...
Рейтинг: 0 / 0
NOT IN не возвращает значения
    #39179357
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fitter2,

А что, поле u.id может быть NULL?
Традиционно оно NOT NULL.

Покажите DDL всех упомянутых таблиц.

И, кстати, mlinks и links - это разные таблицы или опечатка?
...
Рейтинг: 0 / 0
NOT IN не возвращает значения
    #39179416
Fitter2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Miksoft,

Часть полей я удалил.

Код: sql
1.
2.
3.
4.
5.
CREATE TABLE `users` (
  `id` int(64) NOT NULL AUTO_INCREMENT,
  `registred` varchar(50) CHARACTER SET latin1 NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
) ENGINE=MyISAM AUTO_INCREMENT=53415 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE TABLE `links` (
  `id` int(32) NOT NULL AUTO_INCREMENT,
  `mpoll_id` int(32) NOT NULL,
  `link` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
  `user_id` int(64) DEFAULT NULL,
  `status` tinyint(3) DEFAULT '0',
  `user_ip` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
  `created` datetime DEFAULT NULL,
  `modified` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `user_id_ind` (`user_id`) USING HASH
) ENGINE=MyISAM AUTO_INCREMENT=543073 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;



1. Нет не может (это обычная таблица пользователей).
2. Это опечатка.

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


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