[英]joining row with most recent date in mysql
我是mysql的新手,已經嘗試使它正常運行。 我正在加入3個表,並且我嘗試將第三個表與該日期最新記錄的行合並。 這是我的mysql查詢
SELECT mg.region_name, mu.contact_person,
mu.contact_number, mu.status, mu.company_name, mu.user_type, MAX(mf.follow_up_date), mf.date, mu.user_id
FROM p1006_marketing_group as mg
JOIN p1006_marketing_users as mu ON mg.id = mu.region_id
JOIN ( SELECT user_id_fk,MAX(follow_up_date)
FROM p1006_marketing_follow_up ) as mf
ON mu.user_id = mf.user_id_fk
WHERE mu.user_id_done = "" AND ( mg.id = 3 OR mg.id = 7 OR mg.id = 6 )
GROUP BY mf.user_id_fk
我收到以下錯誤
“字段列表”中的未知列“ mf.follow_up_date”
我真的很困惑,因為我必須將follow_up_date列。
我將非常感激任何可能的幫助
您忘了在子查詢中給MAX(follow_up_date)做個別名
編輯查詢,使其看起來像:
MAX(follow_up_date) as follow_up_date
另請注意,您的查詢還有其他問題,例如選擇列表包含約8列,這些列不是聚合函數的一部分,但您的分組依據僅列出一列。 盡管這可能在MySQL中有效,因為它可以(如果配置了)為您填寫缺少的分組字段,但是您應該養成指定它們的習慣,以避免將來在使用不同數據庫系統的其他工作中遇到問題
您缺少MAX列的別名。
SELECT
mg.region_name, mu.contact_person, mu.contact_number, mu.status,
mu.company_name, mu.user_type, MAX(mf.follow_up_date), mf.date, mu.user_id
FROM p1006_marketing_group as mg
JOIN p1006_marketing_users as mu ON mg.id = mu.region_id
JOIN ( SELECT user_id_fk,MAX(follow_up_date) 'follow_up_date' FROM p1006_marketing_follow_up ) as mf ON mu.user_id = mf.user_id_fk
WHERE mu.user_id_done = "" AND ( mg.id = 3 OR mg.id = 7 OR mg.id = 6 )
GROUP BY mf.user_id_fk
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.