我尝试从change_date
中的表中选择LEFT JOIN
中最新时间戳的行。我真的不知道为什么这个查询失败了:
SELECT
i.ID, i.title, i.create_date,
u1.username creator_name,
u2.username assignee
FROM item i
LEFT JOIN user u1 ON u1.login_IDFK = i.creator_IDFK
LEFT JOIN user u2 ON u2.login_IDFK = i.assigned_to_IDFK
LEFT JOIN (
SELECT MAX(change_date), item_IDFK FROM item_state GROUP BY item_IDFK
) AS ist ON ist.item_IDFK = i.ID
我收到以下错误
您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在')附近使用正确的语法AS ist ON ist.item_IDFK = i.ID'在第2行(代码:1064)
在没有最后LEFT JOIN
答案 0 :(得分:0)
(SELECT change_date, item_IDFK FROM item_state GROUP BY item_IDFK)
您正在使用不带聚合的group by子句。选择列表中的每个项目必须在group by子句中表示,或者是聚合表达式的一部分
即
(Select Max(Change_Date), item_IDFK from item_state group by item_IDFK)
答案 1 :(得分:0)
尝试将最后一个子查询保存在视图表中,然后从该表中保留连接,并查看语法错误是否仍然存在。