Mysql sql关系显示表中每个记录的总和(值)
我有两个表1用于网页详细信息 另一个是参观 如下 页数 拜访Mysql sql关系显示表中每个记录的总和(值),mysql,join,count,Mysql,Join,Count,我有两个表1用于网页详细信息 另一个是参观 如下 页数 拜访 vid pid ip datetime 1 1 222.1.1.1 2013-01-01 11:11:11 2 1 12.12.2.1 2013-01-01 11:21:11 3 3 222.1.1.1 2013-01-02 10:11:11 4 2 12.12.2.1 2013-02-01 11:21:11
vid pid ip datetime
1 1 222.1.1.1 2013-01-01 11:11:11
2 1 12.12.2.1 2013-01-01 11:21:11
3 3 222.1.1.1 2013-01-02 10:11:11
4 2 12.12.2.1 2013-02-01 11:21:11
5 3 222.1.1.1 2013-03-01 11:14:11
6 1 12.12.2.1 2013-04-01 11:55:11
我想显示如下
pid pname and-more-columns total_visits (shud count from VISITS table)
1 index ----------- 3
2 contact ----------- 1
3 about ----------- 2
选择p.*,计数(v.pid)
从第p页开始
内部联合访问
在p.pid=v.pid上
按p.pid、p.pname分组,
假设您想要不匹配的“0”,那么您想要左外连接:
SELECT p.*, COUNT(v.pid)
FROM PAGES p left outer join
VISITS v
ON p.pid = v.pid
GROUP BY p.pid
请注意,这是在
group by
子句中仅按一个字段进行分组。这使用了名为“隐藏列”的MySQL(mis)功能。此版本还假定pages.pid
字段是唯一的。您已经尝试了什么?
SELECT
v.*,
count(p.pid) AS `TotalVisits`
FROM PAGES AS p
INNER JOIN VISITS AS v ON v.pid = p.pid
GROUP BY p.pid
SELECT p.*, COUNT(v.pid)
FROM PAGES p left outer join
VISITS v
ON p.pid = v.pid
GROUP BY p.pid
SELECT
v.*,
count(p.pid) AS `TotalVisits`
FROM PAGES AS p
INNER JOIN VISITS AS v ON v.pid = p.pid
GROUP BY p.pid