嘿所有我有以下查询:
SELECT count(e.id), count(c.id), e.Nid
FROM tbl1 e
LEFT JOIN tbl2 c
ON e.Uid = c.Uid
where e.at > '".$from."'
AND e.at < '".$to."'
GROUP BY e.Nid
所以我有两个表,一个用于用户进入我的网站,另一个用于他创建帐户时(我自己的网站流量监控器)。 Nid是基于浏览器的用户代理。
所以这告诉我有多少ppl出现以及有多少人按浏览器类型创建了帐户。 现在我的问题是我想添加一个子句,例如WHERE e.IP是唯一的。
有人可以指出我正确的方向,我是mysql的新手。
答案 0 :(得分:1)
看起来应该是这样的
SELECT COUNT(DISTINCT e.IP), count(e.id), count(c.id), e.Nid
FROM tbl1 e
LEFT JOIN tbl2 c
ON e.Uid = c.Uid
where e.at > '".$from."'
AND e.at < '".$to."'
GROUP BY e.Nid
答案 1 :(得分:0)
SELECT DISTINCT(e.IP), count(e.id), count(c.id), e.Nid
FROM tbl1 e
LEFT JOIN tbl2 c
ON e.Uid = c.Uid
where e.at > '".$from."'
AND e.at < '".$to."'
GROUP BY e.Nid
您需要使用Distinct关键字。正如它所说,它只为该字段选择不同或唯一的记录。
答案 2 :(得分:0)
换句话说,您想要计算tbl1
中的唯一IP地址。在这种情况下,您将无法tbl1
与tbl2
Uid
加入,因为我认为Uid
中的每个IP地址都可以有多个tbl1
}。