Dl
Новичок
Запрос на нахождение "пересечения" таблицы
Добрый день!
Суть вопроса:
есть таблица
Нужно из нее выбрать все значения `code`, для которых значения `type_id` равны 3,4,5,6 и есть значения `note`, отличные от NULL. Я пытаюсь сделать так:
но в результат попадают записи с `note`=NULL. Как это лучше сделать? Либо делать несколько подзапросов с IN?
Добрый день!
Суть вопроса:
есть таблица
Код:
CREATE TABLE `g_char` (
`type_id` int(2) NOT NULL,
`code` int(6) NOT NULL,
`note` varchar(255) default NULL,
PRIMARY KEY (`type_id`,`code`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251
Код:
SELECT `code` FROM `g_char` WHERE `type_id`=3 AND `note` IS NOT NULL AND
EXISTS (SELECT `code` FROM `g_char` WHERE `type_id`=4 AND `note` IS NOT NULL) AND
EXISTS (SELECT `code` FROM `g_char` WHERE `type_id`=5 AND `note` IS NOT NULL) AND
EXISTS (SELECT `code` FROM `g_char` WHERE `type_id`=6 AND `note` IS NOT NULL)