好的,我有一个收视率表。为离开评等的每个用户创建一个新行。我要做的是创建一个查询,该查询将返回当前和7天前存在的每个特定行的评级值。
广义的观点是,我想计算总的平均评分与7天前的总平均评分的差额。
我有这条路,我认为这是正确的道路,但我正在得到
Unknown column 'start_ratings.menu_item_id' in 'on clause'SELECT *
FROM ratings end_ratings
JOIN (
SELECT menu_item_id as end_menu_item_id, AVG(value) AS end_rating
FROM ratings
WHERE
created_at > current_date - 7
AND menu_item_id IS NOT NULL
AND location_id IS NOT NULL
GROUP BY menu_item_id
) start_ratings ON (end_ratings.menu_item_id = start_ratings.menu_item_id)
WHERE menu_item_id IS NOT NULL
AND location_id IS NOT NULL;发布于 2013-01-22 20:05:38
您对列as end_menu_item_id进行了别名化。只需使用它,因为在派生表的()之外,ON子句、SELECT列表等中只知道别名.
正因如此:
SELECT menu_item_id as end_menu_item_id,
/*-----------------^^^^^^^^^^^^^^^^^^^^^^ */用这个:
...) start_ratings ON (end_ratings.menu_item_id = start_ratings.end_menu_item_id)
/*----------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^ */https://stackoverflow.com/questions/14467050
复制相似问题