Mysql SQL查询中的列计数

Mysql SQL查询中的列计数,mysql,sql,Mysql,Sql,我想在此语句中添加COUNTitem_id: SELECT * FROM `notifications` WHERE `uid` = '3' AND `seen` = '0' AND id IN ( SELECT MAX(id), COUNT(item_id) FROM `notifications` GROUP BY item_id ) ORDER BY id DESC 但出现了此错误:操作数应包含1列 表: 预期输出:Order BY id DESC,其中69是最后一条记录 [item_

我想在此语句中添加COUNTitem_id:

SELECT * FROM `notifications` WHERE `uid` = '3' AND `seen` = '0' AND id IN (
SELECT MAX(id), COUNT(item_id)
FROM `notifications`
GROUP BY item_id
)  ORDER BY id DESC
但出现了此错误:操作数应包含1列

表:

预期输出:Order BY id DESC,其中69是最后一条记录

[item_id] [num]
    69      4
    70      2

一个有根据的猜测说您想要加入:


不清楚您是否也希望子查询中包含过滤条件

有人猜测你想要加入:


不清楚您是否也希望子查询中包含过滤条件

给定示例数据和预期结果,不需要子查询:

select item_id, count(*)
from notifications
group by item_id
where uid = 3 and seen = 0
order by max(id) desc;

给定示例数据和预期结果,不需要子查询:

select item_id, count(*)
from notifications
group by item_id
where uid = 3 and seen = 0
order by max(id) desc;

样本数据和预期结果将有所帮助。这个错误是不言自明的-您不能在in子句中使用多个列。。。子查询必须返回每行一列的行,而不是两列;但左侧参数必须是具有相同项数和类型的元组。a、 b从中选择x,y。。。a,c,b,d中的a,b。。。。都是有效的。@sgedes。实际上,您可以在IN子句中使用多列。这是OP没有做的,也不需要的,但是MySQL确实支持带有IN的元组。表的模式是什么,预期的输出是什么?目前的解决方案-从通知中选择*,其中uid='3',seen='0',id在按项选择通知组中的MAXid\u id ORDER BY id DESC;样本数据和预期结果将有所帮助。这个错误是不言自明的-您不能在in子句中使用多个列。。。子查询必须返回每行一列的行,而不是两列;但左侧参数必须是具有相同项数和类型的元组。a、 b从中选择x,y。。。a,c,b,d中的a,b。。。。都是有效的。@sgedes。实际上,您可以在IN子句中使用多列。这是OP没有做的,也不需要的,但是MySQL确实支持带有IN的元组。表的模式是什么,预期的输出是什么?目前的解决方案-从通知中选择*,其中uid='3',seen='0',id在按项选择通知组中的MAXid\u id ORDER BY id DESC;预期输出已添加到问题。预期输出已添加到问题。
select item_id, count(*)
from notifications
group by item_id
where uid = 3 and seen = 0
order by max(id) desc;