Забыли пароль?
Запросите новый здесь.

Автор темы: Pisatel
ID темы: 2478
Информация:
Тема содержит 3 сообщения, была просмотрена 3289 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » MySQL
 Распечатать тему
Выборка из таблицы, исключая значения из другой таблицы.
Pisatel
Всем доброго времени суток. Завис я чего-то, помощь нужна. Итак, мне нужно из таблицы DB_USERS выбрать пользователей, исключив сразу из выборки пользователей, чей id есть в другой таблице. Сразу уточню: другая таблица может быть и пустой (это для скрипта рассылок, во второй таблице- id пользователей, которые могут отписаться от рассылки). То есть, для следующей рассылки мне при формировании списка нужно будет сразу их исключить. Думал через LEFT JOIN сделать, в ON поставить отрицание (типа ui.user_id != uid.user_id), но в мануале сказано, что не рекомендуется ставить условия через JOIN, нужно делать через WHERE. И тут я поплыл че-то. Буду признателен за помощь.
Переполз на WP, но PF - это как первая любовь, которая не забывается...
 
Web
Razor
Скачать исходники  Код
SELECT * FROM users WHERE id NOT IN(SELECT user_id FROM another_table);



Если я правильно понял, то как-то так.
Sr. Software developer
plesk.com
x3 x1
 
Pisatel
Ага, подобное я уже и написал (на ru.stackoverflow.com подобный вопрос нашел). Вот сие творение (еще не тестил)
Загрузить источник  GeSHi: PHP
  1. $pre = dbcount("(user_id)", DB_USERS_MAILALL);
  2. if ($pre > 0) {
  3. $result = dbquery("SELECT ui.user_id, ui.user_name, ui.user_email
  4. FROM ".DB_USERS." ui
  5. WHERE ui.user_id NOT IN
  6. (SELECT uid.user_id FROM ".DB_USERS_MAILALL." uid) AND ".$where."")
  7. } else {
  8. $result = dbquery("SELECT user_id, user_name, user_email FROM ".DB_USERS." WHERE ".$where."");
  9.  
  10. }
Добавлено за 0.038 секунд, используя GeSHi 1.0.8.10

Теперь вопрос чуть в другом: у меня уже есть условие where ($where), так как выборка идет по группам пользователей. верно ли я в первом if добавил AND или как-то по-другому надо?
Переполз на WP, но PF - это как первая любовь, которая не забывается...
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Alex Alex (1,246)   Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)