Mysql 对子查询中的多个值重复主查询

Mysql 对子查询中的多个值重复主查询,mysql,Mysql,我的桌子是空的 login_table { varchar: User_id//primary key //other stuff } token_table { varchar token_table;//primary key varchar user_id } token_messages {varchar: Mes_id varchar: token_id; } 现在,我想获得某个用户下每个令

我的桌子是空的

 login_table
    {
    varchar: User_id//primary key
    //other stuff
    }
   token_table
   {
    varchar token_table;//primary key
    varchar user_id
   }
   token_messages
   {varchar: Mes_id
   varchar: token_id;
    }
现在,我想获得某个用户下每个令牌的消息计数; 比如:

这里1 5 6 7是say user的标记:deepu

试试这个:

 SELECT tm.token_id, COUNT(t.user_id) `Mes_count`
 FROM token_messages tm
 INNER JOIN token_table t ON tm.token_id = t.token_id
 INNER JOIN login_table l ON t.user_id = l.user_id
 WHERE l.user_name = 'deepu'
 GROUP BY tm.token_id
select tm.token_id,count(*) as msg_cnt from 
token_messages tm inner join token_table t
on tm.token_id=t.token_id and t.user_id in(select user_id from login_table where user_name = 'deepu')
group by tm.token_id
试试这个:

 SELECT tm.token_id, COUNT(t.user_id) `Mes_count`
 FROM token_messages tm
 INNER JOIN token_table t ON tm.token_id = t.token_id
 INNER JOIN login_table l ON t.user_id = l.user_id
 WHERE l.user_name = 'deepu'
 GROUP BY tm.token_id
select tm.token_id,count(*) as msg_cnt from 
token_messages tm inner join token_table t
on tm.token_id=t.token_id and t.user_id in(select user_id from login_table where user_name = 'deepu')
group by tm.token_id

为什么表中的主键是
VARCHAR
,而它们都是
id
,非常感谢它为我工作!我从没想到会有这么快的反应。再次感谢!