如何获得没有匹配团队名称的成员列表?

时间:2015-10-16 19:01:32

标签: php mysql

基本上,我想从数据库中获取数据。我想要的数据是没有匹配团队名称的人/成员。在注册表中,每个成员都必须填写一个团队名称,然后选择一个类别,假设A类必须为每个团队拥有2个成员。现在我想要一个没有匹配团队名称的成员列表。逻辑如何?

我在想的是:

  1. 获取团队名称列表
  2. 进行循环以检查是否存在具有相同团队名称和类别的成员(num行小于或精确为1)
  3. 列出结果
  4. 我没有编写任何代码,因为我对如何执行此操作的逻辑感到困惑。希望你们能给我一些反馈。

    另外,我目前正在使用Codeigniter

    编辑#1

    这是表结构

    ID | NAME | CATEGORY | TEAM
    1  | Person 1 | CAT A | TEAM A
    2  | PERSON 2 | CAT A | TEAM A
    3  | PERSON 3 | CAT A | TEAM B
    

    我想要的结果是没有其他团队成员的人,所以结果将是:

    3  | PERSON 3 | CAT A | TEAM B
    

    因为其他人有匹配的团队

2 个答案:

答案 0 :(得分:2)

SELECT *
FROM your_table
WHERE category = 'CAT A'
   AND team != 'TEAM A'

答案 1 :(得分:0)

我想这可能会对你有所帮助:

SELECT 
  id,
  NAME,
  category,
  teams.team 
FROM
  teams 
  INNER JOIN 
    (SELECT 
      team 
    FROM
      teams 
    GROUP BY team 
    HAVING COUNT(id) = 1) diff 
    ON teams.team = diff.team ;

SQLFiddle Demo