Задавайте вопросы, мы ответим
Вы не зашли.
имеется таблица compID | softID
2 11
2 12
1 13
1 11
3 10
как из нее выбрать все compID у которых softID не равен 11 ( все компы где не установлена программа 11)?
запрос SELECT compID FROM table WHERE softID!=11 не работает, т.к. выберет например 2 с программой у которой софтИД=12, но и программа 11 установлена на 2!!! помогите!
Неактивен
Ну, тут видно два способа.
Первый способ плохой - никогда так не делайте . Из всех компьютеров выбираем те, которые не попадают в множество тех, где программа установлена.
SELECT distinct compID FROM t WHERE compID NOT IN (SELECT compID FROM t WHERE softID = 11) t_al;
Второй способ получше:
SELECT compID FROM t GROUP BY by compID having max( if ( softID = 11, 1, 0)) = 0;
Отредактированно deadka (01.03.2012 22:02:24)
Неактивен
Неактивен