webboxxx
К примеру имеем такую структуру таблицы:
Код:
CREATE TABLE `tasks` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`item_name` varchar(100) NOT NULL default '',
`deleted` tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
item_name может повторяться. задача в том, чтобы выдернуть все DISTINCT item_name WHERE deleted=1, но только если нет ни одной записи с таким же item_name, у которых deleted=0.
Если непонятно объяснил - пример:
Код:
ID | ITEM_NAME | DELETED
1 | aaa | 0
2 | bbb | 0
3 | bbb | 1
4 | ccc | 1
запрос должен вернуть только запись 4 ссс.
1 и 2 не возвращаем потому что deleted = 0.
3 не возвращаем потому что присутствует запись (2) с item_name = bbb и у нее deleted = 0.
Рейтинг по максимуму.
webboxxx
оба варианта не работают.
вариант Adult'a вызывает ошибку:
Код:
near 'SELECT COUNT(t2.id) FROM tasks t2 WHERE ....'
версия мускуля 4.0.21
вариант brainstorm'a просто возвращает 0 рядов.
proc3nt
У меня заработал такой код
Код:
SELECT DISTINCT item_name, MIN(deleted) as _min, MAX(deleted) as _max FROM tasks WHERE 1 GROUP BY item_name HAVING (_min=1 AND _max=1)
С тебя рейтинг