我试图比较同一个表中的两个值,并检查是否有差异。 现在,我有1485条记录中cms_statistics_pages表,但在下面的查询:MySQL比较同一个表上的两个值
SELECT
cp.identifier,
COUNT(csp1.statID) AS hits,
COUNT(csp2.statID) AS hits_yesterday,
IF(COUNT(csp1.statID)>COUNT(csp2.statID),1,0) AS growth
FROM cms_pages cp
LEFT JOIN cms_statistics_pages csp1
ON csp1.pageID = cp.pageID
AND DATE(csp1.datetime) = '2012-07-20'
LEFT JOIN cms_statistics_pages csp2
ON csp2.pageID = cp.pageID
AND DATE(csp2.datetime) = '2012-07-19'
GROUP BY cp.identifier
..是开除,我得到这些结果:
identifier hits hits_yesterday growth
index 13395 13395 0
siden-er-under-opdatering 638 638 0
vores-historie 0 3 0
哪项不正确我的目的。然后,如果我改变:
AND DATE(csp1.datetime) = '2012-07-20'
,以将匹配任何记录
日期AND DATE(csp1.datetime) = '2012-07-21'
我的结果现在看起来是这样的:
identifier hits hits_yesterday growth
index 0 141 0
siden-er-under-opdatering 0 29 0
vores-historie 0 3 0
现在的点击率是正确的,所以我m想知道当两个连接都包含一些数据时,查询是否多次计算记录。从cms_pages
示例数据:从cms_statistics_pages
pageID sectionID templateID identifier default title exclude_title 1 1 1 index 1 Welcome to SiteTech Framework 2012
示例数据:
statID frontend backend pageID sectionID panel datetime 1 0 1 34 6 admin 2012-07-17 12:34:14