MySQL - 从2个表获得MAX的SUM结果

时间:2010-04-19 16:15:24

标签: mysql select join

这是我的问题: 我有2个相同的表(过去一个月的数据,当月数据) - data_2010_03,data_2010_04:

Content_type (VARCHAR), content_id (INT), month_count (INT), pubDate (DATETIME)

month_count中的数据每小时更新一次,因此对于content_typecontent_id的每个组合,我们会插入新行,其中month_count的值会逐步更新。

现在我尝试这样的事情:
SELECT MAX(t1.month_count) AS max_1, MAX(t2.month_count) AS max_2, SUM(max_1 + max_2) AS result, t1.content_type, t1.content_id
FROM data_2010_03 AS t1
JOIN data_2010_04 AS t2 ON t1.content_type = t2.content_type AND t1.content_id = t2.content_id
WHERE t2.pubDate < '2010-04-08' AND t1.content_type = 'video'
GROUP BY t1.content_id
ORDER BY result desc, max_1 desc, max_2 desc
LIMIT 0,10

我在“字段列表”中收到错误“未知列'max_1'。请帮忙。

2 个答案:

答案 0 :(得分:1)

你不能在表达式中使用别名(在同一级别的选择中),所以

SUM(max_1 + max_2) AS result

必须写成

MAX(t1.month_count)+MAX(t2.month_count) AS result

答案 1 :(得分:1)

而不是

SELECT MAX(t1.month_count) AS max_1, MAX(t2.month_count) AS max_2, SUM(max_1 + max_2) AS result

你能做到吗

SELECT MAX(t1.month_count) + MAX(t2.month_count) AS result

或者我可能误解了这个要求。