2017-06-30 127 views
0

其实我试图找到一种方式来选择表中的所有不同的私人消息,也得到了各计数1个SQL查询计数联合SELECT DISTINCT

实际的表有列与成员的ID并且还与消息的实际视图状态的列 当消息状态= 0意味着不 读取表数据的

例如

 
roger 0 
paul 1 
roger 0 
paul 0 
mike 0 
mike 0 
mike 0 

然后我想要的结果是

 
roger 2 
paul 1 
mike 3 

任何帮助将apreciated感谢

+0

您正在使用哪个[DBMS](https://en.wikipedia.org/wiki/DBMS)? Postgres的?甲骨文? –

+0

嗯,老实说,我不知道我使用mysql,我认为 – Mireille28

回答

2

你在找这个?

SELECT member_id, COUNT(*) AS count 
    FROM messages 
WHERE state = 0 
GROUP BY member_id 

这里是一个dbfiddle演示


我也需要从另一个表将匹配member_id选择所有字段是可能在1个查询

当然, JOIN away

SELECT m.*, t.* 
    FROM (
    SELECT member_id, COUNT(*) AS count 
     FROM messages 
    WHERE state = 0 
    GROUP BY member_id 
) m JOIN other_table t 
    ON m.member_id = t.member_id 
+0

谢谢,但我忘了问题中的一个参数非常抱歉,我还需要从另一个表中选择所有字段将匹配member_id是可能在1查询?让我们打电话给其他的桌面用户 – Mireille28

+0

查看更新的答案,不要忘记将来在你的问题中包含所有重要细节:) – peterm

+0

我可以问你这比做子查询更好吗?实际上我认为这只是想确保当我有10 000个日志时我的子查询运行10 000次 – Mireille28