mysql查询问题(分组依据)

时间:2011-11-20 01:13:38

标签: mysql

SELECT DISTINCT(user),user,ip FROM logins GROUP by ip

这应该从登录表中选择具有相同ip的唯一用户。由于某种原因,它只返回一行。不应该拉动没有冲突的ips的用户。

3 个答案:

答案 0 :(得分:2)

这是你想要的吗? :

SELECT DISTINCT
       logins1.user user1,
       logins2.user user2,
       logins1.ip
  FROM logins logins1
  JOIN logins logins2
    ON logins2.user > logins1.user
   AND logins2.ip = logins1.ip
;

以上内容将找到每对不同的userip共同的ip以及{{1}}。 (注意如果两个以上的用户都共享一个IP,这将为该IP返回多行。例如,对于四个用户A / B / C / D,它将返回六行AB / AC / AD / BC / BD / CD。可以吗?)

答案 1 :(得分:1)

从登录中选择用户,ip,其中ip in(
  通过ip HAVING COUNT(用户)> SELECT ip FROM登录组1)

答案 2 :(得分:0)

DISTINCT表示“不同”,如果您的所有用户都具有相同的ip,则使用GROUP BY ip将只显示您表格中的一条记录。您的查询是正确的!

如果要显示所有记录,但DISTINCT是用户。 (拆分重复记录,然后从查询末尾删除GROUP BY)