Re: [sqlite] select .. like (select ...)
От: Centaur Россия  
Дата: 26.07.10 14:46
Оценка:
Здравствуйте, Bonavena, Вы писали:

B>Есть две таблицы: table1 (record text), table2 (phone text).

B>Цель — выбрать все такие record, что бы в них не встречались подстроки phone.

B>Вот такая инструкция SELECT * FROM table1 WHERE record NOT LIKE (SELECT '%'||phone||'%' FROM table2) не срабатывает, а точнее принимает в рассмотрение только первую строку из table2.


Ну а почему бы этот запрос мог бы работать? Подзапрос возвращает множество строк, LIKE требует вторым операндом одну строку. Хорошая СУБД должна этот запрос вообще отвергнуть как некорректный сразу, как определит, что подзапрос вернул не ровно одну запись.

Видеть в задаче «выбрать все такие record, чтобы в них не встречались подстроки phone» формальную формулировку «{record∈table1 | ¬∃phone∈table2 (record LIKE '%' || phone || '%')}» учит математическая логика.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.