【发布时间】:2011-01-29 19:43:37
【问题描述】:
现在我有以下查询:
SELECT name, COUNT(name), time, price, ip, SUM(price)
FROM tablename
WHERE time >= $yesterday
AND time <$today GROUP BY name
而我想做的是在“ip”列中添加一个 DISTINCT,即
SELECT DISTINCT ip FROM tablename
所以我的最终输出将是所有列,来自今天时间所在的所有行,按名称分组(每个重复名称的名称计数)并且没有重复的 IP 地址。
我的查询应该是什么样的? (或者,如何使用 php 将缺少的过滤器添加到输出中)?
提前致谢。
[更新]
为了尽量减少混淆,请考虑这个(简化的)数据库表:
| name | ip |
---------------------
| mark | 123 |
| mark | 123 |
| mark | 456 |
| dave | 789 |
| dave | 087 |
我正在寻找的结果将是一个如下所示的 HTML 表格:
| name | name count |
----------------------------
| mark | 2 |
| dave | 2 |
我目前得到的是:
| name | name count |
----------------------------
| mark | 3 |
| dave | 2 |
(即使两次使用相同的ip,它也会标记3次)。
【问题讨论】:
-
我也试过 SELECT DISTINCT ip FROM (SELECT name, COUNT(name), time, price, ip, SUM(price) FROM tablename WHERE time >= $yesterday AND time
-
尝试: SELECT DISTINCT TABLE.ip FROM (SELECT T.name, COUNT(T.name), T.time, T.price , T.ip, SUM(T.price) FROM tablename T WHERE time >= $yesterday AND time
-
-"提供的参数不是有效的 MySQL 结果资源" :(
-
好的,我正在拔头发,无法解决这个问题!!!:) 尝试新方法,新问题在这里:u.nu/4kau7
标签: mysql select group-by distinct