以下是我的查询,它按postid
对其进行分组,但不会按项目ID或pid
SELECT
tracker.postid as postid,
sum(tracker.clicks) as clicks,
projects.id as pid
FROM
tracker_dailyclicks tracker
LEFT JOIN posts
ON tracker.postid = posts.id
LEFT JOIN projects
ON projects.id = posts.project_id
WHERE
tracker.date >= '2012-03-30'
AND tracker.date <= '2012-03-30'
GROUP BY
postid,
pid
ORDER BY
clicks DESC
我不确定从哪里开始,我认为它与尝试按照从另一个连接加入的列进行分组有关。只是寻找一些见解。
答案 0 :(得分:0)
SELECT tracker.postid as postid, sum(tracker.clicks) as clicks, projects.id as pid
FROM `tracker_dailyclicks` tracker
LEFT JOIN posts ON posts.id = postid
LEFT JOIN projects ON projects.id = posts.project_id
WHERE tracker.date >= '2012-03-30' AND tracker.date <= '2012-03-30'
GROUP BY tracker.postid, projects.id ORDER BY clicks DESC
答案 1 :(得分:0)
我相信你遇到的问题是它是一个LEFT JOIN并且可能达到了NULL值。所以,每当你有NULL值时,你总会得到奇怪的副作用......我会改为......
选择...... COALESCE(projects.id,0)为pid
由于您已经使用“pid”列别名作为分组依据,因此应该没有影响。