второй день не могу придумать sql-запрос для поиска пользователей сайта..
задача вроде бы стандартная
допустим есть две таблицы :
основная: users - отсюда интересуют лишь поля id,nickname и sex
дополнительная: users_secondary - опциональная информация о пользователях(заполняется не всегда). интересующие поля weight, stature.
есть форма поиска, через которую юзер делает запросы:
допустим, это - nickname, пол, диапазон веса и роста.
причём, если юзер не ввел значение какого-либо из полей должны охватываться все записи.(к прим., если установлена лишь нижняя граница роста в 200см - должны выбираться все юзеры выше 200 и т.п.)
с незаполненными полями на первый взгляд всё просто. к прим. -
if (@$_POST['nickname']) { $nickname = $_POST['nickname']; } else { $nickname = '%'; }
if (@$_POST['weight0']) { $weight0 = $_POST['weight0']; } else { $weight0 = '0'; } и т.п.
первое что пришло в голову -
select u.id from users u left join users_secondary sec on u.id = sec.uid where u.nickname like '$nickname' and
u.sex = '$sex' and
sec.stature > '$stature0' and sec.stature < '$stature1' and
sec.weight > '$weight0' and sec.weight < '$weight1'
limit 100
но тут возникает проблема - если во второй таблице нет соотв-й записи LEFT JOIN возвращает его значением NULL и операторы сравнения в любом соучае вернут false..
как быть?
PS СУБД mysql

Ответ на:
комментарий
от romanSA


Ответ на:
комментарий
от romanSA

Ответ на:
комментарий
от Selecter

Ответ на:
комментарий
от romanSA


Ответ на:
комментарий
от KRoN73

Ответ на:
комментарий
от smartly

Ответ на:
комментарий
от Casus

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Переменные в postgres как в mysql (2017)
- Форум [MySQL, LEFT JOIN] Запутался (2011)
- Форум MySQL: Странное поведение left join (2017)
- Форум Организация аутентификации для случая двух серверов (2017)
- Форум Можно утверждать что INNER JOIN всегда быстрее LEFT JOIN? (2022)
- Форум left join для csv на bash (2019)
- Форум sqlite3 left self-join, только наоборот (2023)
- Форум left outer join и проблемы с JPQL. (2019)
- Форум null vs. NULL (2018)
- Форум multicast join (2004)