sql not in



Not in sql

Автор Зияудин Абукаров задал вопрос в разделе Другие языки и технологии

SQL запрос, not in() и получил лучший ответ

Ответ от Михаил Губарев[гуру]
$result = array_diff ($friends[0], $friends[12]);
....where id in (".implode(',', $result ).")...
андестенд?

Ответ от Александр Свиридов[гуру]
$friends[0] и $friends[12] - откуда у вас эти массивы?
Дело в том что все данные по определению должны храниться в базе данных. Это лишает вас проблемы выбора алгоритма. Скажем, найти клиентов из города Москва но только таких у которых более 2-х заказов за месяц. Вы ищете тех у которых 3 и более заказов, потом делаете
select * from Customer where ID in (1,2,45,342,32,43,24,234,3)
и на этом "in" система бесится.
Сервер ждёт что вы отфильтруете более эффективным способом и не будете ему передавать целый массив значений для сравнений.

Ответ от CanMan[гуру]
Сервер может только беситься, но правильные запросы он выполнять обязан. У меня нет под рукой сервера mySQL, чтобы прогнать Ваш запрос и указать на ошибку, если она имеет место быть. Почему бы Вам не запустить его самому и не сообщить нам поточнее, на что именно жалуетесь: на медленность или на незапускаемость?
Можно, конечно, попытаться "мысленно" прокомпилировать Ваш запрос, но, боюсь, mySQL все равно сделает это и быстрее, и лучше.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: SQL запрос, not in()
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*