LandingPages - 包含每个广告系列的落地页。
Reports - 包含每个落地页的点击量和转化量。
SELECT l.LandingPageId, SUM(Hits) AS Hits, SUM(PixelSum) AS Conversion
FROM Report c
RIGHT JOIN LandingPages l ON(c.LandingPageId = l.LandingPageId )
WHERE c.CampaignId = x
AND DayDate > 'y'
GROUP BY c.LandingPageId
问题在于我只能得到存在于报告表并且日期为“y”的着陆页的行(例如:我只能得到2个着陆页的行,但实际上有4个着陆页)。如果我运行此查询,则会返回4个结果。
SELECT l.LandingPageId FROM LandingPages l WHERE l.CampaignId = x
不是所有着陆页面都有0的价值,
我该如何让它按照我想要的方式工作,并给我那些不在报告表中或在旧日期表中但仍然是着陆页的页面?
谢谢。
更新:
非常感谢您的回答,我得到了部分解决方案,只有当着陆页面在报告表中不存在时才适用于我,但是如果它存在但日期条件不匹配,则不会出现:
部分解决方案查询:
SELECT l.LandingPageId, IFNULL(SUM(Hits),0) AS Hits, IFNULL(SUM(PixelSum),0) AS Conversion
FROM LandingPages l
LEFT JOIN Report c ON( l.LandingPageId = c.LandingPageId)
WHERE (l.CampaignId = x OR l.CampaignId IS NULL)
AND (DayDate > 'y' OR DayDate IS NULL)
GROUP BY l.LandingPageId
我仍然需要您的帮助!
谢谢!