0

我有 2 个表格 1 个用于网页详细信息,另一个用于访问,如下所示

页数

pid pname      and-more-columns
1   index      -----------
2   contact    -----------
3   about      -----------   

访问

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
4

3 回答 3

0
SELECT p.*, COUNT(v.pid)
FROM PAGES p
INNER JOIN VISITS v
ON p.pid = v.pid
GROUP BY p.pid, p.pname, <list all other columns here>
于 2013-04-16T18:04:33.493 回答
0

假设你想要没有匹配的“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字段是唯一的。

于 2013-04-16T18:19:37.693 回答
0
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
于 2013-04-16T19:15:01.160 回答