- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Доброго времени суток!
Столкнулся с такой задачей:
Храню юзеров сайта в таблице 'users', а сообщения юзеров в таблице 'messages'.
Cтруктура таблицы 'users' :
id|name|mail|status|age|gender и т.д...
Структура таблицы 'messages' :
id|author|message (где 'author' - это 'id' юзера в таблице 'users')
Нужно сделать выборку юзеров по определенным критериям (WHERE), и с условием, что у юзера есть N записей в таблице 'messages' (т.е. N раз встречается его 'id' в поле 'author' таблицы 'messages')
Например, выбрать только мужчин старше 20 лет, оставивших более 3-х сообщений.
Надеюсь, удалось описать проблему... :)
UNION ALL между двумя выборками.
select * from users as a left join messages as b on a.id=b.author
where a.age>20 and a.gender='male'
group by a.id
having count(b.id)>3
edogs, спасибо, - получилось... немного была загвоздка с выводом, т.к. поле id есть и там и там... но разобрался...