LEFT JOIN子SELECT失败

时间:2014-03-02 20:58:28

标签: mysql sql

我尝试从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

的情况下,查询效果很好

2 个答案:

答案 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)

尝试将最后一个子查询保存在视图表中,然后从该表中保留连接,并查看语法错误是否仍然存在。

相关问题