mysql query к двум таблицам - нужна помощь!

artalex
На сайте с 08.12.2005
Offline
144
616

Доброго времени суток!

Столкнулся с такой задачей:

Храню юзеров сайта в таблице '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-х сообщений.

Надеюсь, удалось описать проблему... :)

DV
На сайте с 01.05.2010
Offline
644
#1

UNION ALL между двумя выборками.

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
edogs software
На сайте с 15.12.2005
Offline
775
#2
Например, выбрать только мужчин старше 20 лет, оставивших более 3-х сообщений.

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

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
artalex
На сайте с 08.12.2005
Offline
144
#3

edogs, спасибо, - получилось... немного была загвоздка с выводом, т.к. поле id есть и там и там... но разобрался...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий