Задавайте вопросы, мы ответим
Вы не зашли.
Есть 2 таблицы:
TABLE1 - id, name, ...
TABLE2 - tid, tag
, которые между собой связаны как tid=id.
Мне нужно выбрать строки из TABLE1, где нет определенного значения «tag». То есть, к примеру, вывести все записи, у которых нет тэга «yyy». Вывод записей, у которых присутствует определенный тэг - легко (LEFT JOIN TABLE2 on tid=id WHERE TABLE2.tag='yyy'), а вот наоборот сложно .
Пока никак не могу придумать решение... В одном проекте сие решил путем добавления в таблицу1 служебной колонки с перечислением всех тэгов (там правда тэговая система релизована куда сложнее - с алиасами, с хранением кол-ва). Здесь же, если опять делать то же самое — придется перелопатить много данных , чего делать не особо хочется.
Отредактированно Astaha (05.08.2011 20:07:56)
Неактивен
select * from table1 where id not in (select tid from table2 where tag='yyy');
Неактивен
Спасибо. То, что надо.
Неактивен