MySQL中不同的值和计数

时间:2015-04-10 08:06:17

标签: android sql android-sqlite

我有一个表,其中包含已保存到ORM数据库中的消息。我有一个消息表和Users表,用于获取和保存值。

这是我的SQL查询:

Select DISTINCT ch.user AS _id,
       con.name, 
       con.image, 
       con.color, 
       con.contact_id 
  from messages ch 
  inner join users con 
          on con.phone = ch.user 
  order by ch.timestamp ASC

我在messages表中也有一个布尔字段状态。我想得到status = false的所有行的计数。

可以将它集成到我上面准备的查询中,这样我就可以在一个查询中获得所有结果吗?或者我是否需要执行另一个来获取行数?

1 个答案:

答案 0 :(得分:0)

您可以使用子选择(选中this Fiddle):

Select DISTINCT ch.user AS _id,
       con.name, 
       con.contact_id,
       (SELECT COUNT(*) 
          FROM messages ch2 
         WHERE status = false AND ch.user = ch2.user) AS MY_COUNT
  from messages ch 
  inner join users con 
          on con.phone = ch.user 
  order by ch.timestamp ASC;

或者您从选择的结果中选择,在性能方面可能更好。