Php MySQL+CodeIgniter+点击跟踪唯一点击和总点击
试图跟踪广告的出站点击,但我在构建查询以编译所有统计数据供用户查看和跟踪时遇到了问题 我有两个表,一个用来存放所有广告,另一个用来跟踪用户的点击和基本细节。ip地址,时间戳,用户代理 我需要将所有map_广告信息以及基于IP地址的唯一单击,以及基于map_Advertisions.id的总单击数拉入一个包含行的表中。每个广告1行,其中两列为totalClicks和totalUniqueClicks 除了为每个广告运行三个独立的查询外,还有更好的方法吗 我正在使用mysql5php5.3和codeigniter2.1 地图广告 映射\u广告\u单击\u日志Php MySQL+CodeIgniter+点击跟踪唯一点击和总点击,php,mysql,codeigniter,Php,Mysql,Codeigniter,试图跟踪广告的出站点击,但我在构建查询以编译所有统计数据供用户查看和跟踪时遇到了问题 我有两个表,一个用来存放所有广告,另一个用来跟踪用户的点击和基本细节。ip地址,时间戳,用户代理 我需要将所有map_广告信息以及基于IP地址的唯一单击,以及基于map_Advertisions.id的总单击数拉入一个包含行的表中。每个广告1行,其中两列为totalClicks和totalUniqueClicks 除了为每个广告运行三个独立的查询外,还有更好的方法吗 我正在使用mysql5php5.3和code
查询中似乎存在一个问题,表中并没有名为totalClicks的列,distinct关键字的使用也不正确。试试这个:
SELECT *, count(acl.id) as totalClicks, count(DISTINCT acl.ip_address) as uniqueClicks
FROM map_advertisements a
LEFT JOIN map_advertisements_click_log acl ON a.id = acl.aid
WHERE a.id = $aid;
查询中似乎存在一个问题,表中并没有名为totalClicks的列,distinct关键字的使用也不正确。试试这个:
SELECT *, count(acl.id) as totalClicks, count(DISTINCT acl.ip_address) as uniqueClicks
FROM map_advertisements a
LEFT JOIN map_advertisements_click_log acl ON a.id = acl.aid
WHERE a.id = $aid;
我已经更新了我的Q设置,以反映正确的psuedo sql。不过,您的列顺序是正确的。我将在phpmyadmin中运行此查询,并查看得到的结果。如果有效,则将其移植到CodeIgniter。此查询非常有效,我将使用运行此查询时使用的CI代码更新我的问题。我已更新我的问题,以反映正确的psuedo sql。不过,您的列顺序是正确的。我将在phpmyadmin中运行此查询,并查看得到的结果。如果它工作,我将把它移植到CodeIgniter。这个查询工作得很好,我将用我用来运行这个查询的CI代码更新我的问题。
-- ----------------------------
-- Table structure for `map_advertisements_click_log`
-- ----------------------------
DROP TABLE IF EXISTS `map_advertisements_click_log`;
CREATE TABLE `map_advertisements_click_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`aid` int(11) NOT NULL,
`ip_address` varchar(15) NOT NULL DEFAULT '',
`browser` varchar(255) NOT NULL,
`timestamp` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=latin1;
SELECT *, count(acl.id) as totalClicks, count(DISTINCT acl.ip_address) as uniqueClicks
FROM map_advertisements a
LEFT JOIN map_advertisements_click_log acl ON a.id = acl.aid
WHERE a.id = $aid;