【问题标题】:Mysql Join query using a group byMysql Join查询使用group by
【发布时间】:2009-08-25 23:52:29
【问题描述】:

我正在尝试编写一个将返回的查询...

  1. accesslog 表中每个不同的用户 ID。

  2. 每个用户 ID 访问网站的不同 IP 地址的计数,也来自访问日志表。

  3. 用户表中的用户 ID 名称、电子邮件地址和公司名称。

我有 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 在我想要的其他数据中?

【问题讨论】:

  • 啊 cr@p... 只记得我的 users 表和 accesslog 表在不同的数据库中,我无权访问 root mysql 用户。所以我毕竟不能做这个查询.. :(

标签: mysql join group-by


【解决方案1】:

您需要加入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

【讨论】:

  • 我认为您不需要 'DISTINCT',因为 'group by' 应该会解决这个问题。
  • 感谢您的回答。如果我的数据库不是那么混乱,它会起作用的。
  • @BoltBait - 你是对的;我刚刚复制/编辑了 Ian 的查询并忘记删除它。将编辑。
猜你喜欢
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-23
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多