如何结合这两个SQL语句以避免GROUP BY错误?

时间:2017-01-31 18:12:50

标签: mysql

我正在尝试将两个SQL语句合并为一个,但我遇到了full_group_only的GROUP BY错误,我理解为什么,但不知道如何解决。

在第一个查询中,我只是获取每个项目的操作数,而在第二个查询中,我收到了最新的操作。

假设一个简单的设置:

actions (id, item_id, description)
items (id, name)

使用两个查询

SELECT item_id, COUNT(*) AS actions_number FROM actions GROUP BY item_id 

SELECT * FROM actions WHERE id in (SELECT max(id) FROM actions GROUP BY item_id)  

如何轻松地将这两个陈述合并为一个?

1 个答案:

答案 0 :(得分:1)

这是你想要的吗?

SELECT 
    a.*, b.actions_number
FROM
    actions a
        INNER JOIN
    (SELECT 
        MAX(id) id, COUNT(*) actions_number
    FROM
        actions
    GROUP BY item_id) b ON a.id = b.id;