Mysql - 显示2个表中的团队名称和团队成员数

时间:2016-12-22 20:38:26

标签: mysql

以下查询效果很好

SELECT
          t.name, 
          t.id
        FROM
          team t,
          member m
        WHERE
          m.team_id = t.id

并显示多个结果 我坚持使用的是如何修改查询以显示团队名称和团队中团队成员的数量,例如,团队A有50个团队成员,团队B有20个成员,等等。 / p>

问题是member.team_id有逗号分隔值

enter image description here

team

的表格结构

enter image description here

member

的表格结构

enter image description here

根本不是一个重复的问题

2 个答案:

答案 0 :(得分:1)

使用sql join tables where 1 column has comma中的技术加入表格,然后使用COUNT(*)获取会员数。

SELECT t.name, COUNT(*) 
FROM team t 
JOIN member m 
ON FIND_IN_SET( m.team_id, t.id ) > 0 
GROUP BY t.name

答案 1 :(得分:0)

要从逗号分隔列表中获取成员数,请尝试使用length()和replace()

select
(LENGTH(team_ids) - LENGTH(REPLACE(team_ids, ',', '')))+1
from MyTable

通过删除逗号,长度减少了数量,并且还需要1个,因为最后没有逗号。