2009-08-25 3 views
0

Я пытаюсь написать запрос, который будет возвращать ...Mysql Регистрация запрос с использованием группы по

  1. Каждый отдельный идентификатор пользователя в таблице accesslog.

  2. Количество различных IP-адресов, к которым каждый пользовательский идентификатор обратился к сайту, также из таблицы accesslog.

  3. Это имя пользователя, адрес электронной почты и название компании из таблицы пользователей.

У меня есть 1 и 2, но я не уверен, как получить 3. Я согласен с присоединением. :(

Вот запрос я сейчас:

SELECT DISTINCT userid, COUNT(ipaddress) AS c FROM accesslog WHERE url LIKE 'www.example.com%' and userid != '' GROUP BY userid ORDER BY c desc 

Как бы я JOIN в другие части данных, которые я хочу

+0

Ах кр @ р ... просто вспомнил, что мои пользователи таблицы и accesslog таблицы находятся в разных базах данных, и у меня нет доступа к корню MySQL нас э. Поэтому я не могу сделать этот запрос в конце концов .. :( – Ian

ответ

4

Вы должны присоединиться к users столу и добавить все? ее столбцы в GROUP BY:

SELECT a.userid, u.name, u.email, u.company, COUNT(a.ipaddress) AS c 
    FROM accesslog a, USERS u 
WHERE a.userid = u.userid 
    AND a.url LIKE 'www.example.com%' 
    AND a.userid != '' 
GROUP BY a.userid 
ORDER BY c desc 
+1

Я не думаю, что вам понадобится «DISTINCT», так как «группа» должна позаботиться об этом. – BoltBait

+0

спасибо за ваш ответ. мои базы данных не были настолько задиры. – Ian

+0

@BoltBait - вы правы, я только что скопировал/отредактировал запрос Иана и забыл его удалить. Будет редактировать. – ChssPly76

Смежные вопросы