基本上,我想从数据库中获取数据。我想要的数据是没有匹配团队名称的人/成员。在注册表中,每个成员都必须填写一个团队名称,然后选择一个类别,假设A类必须为每个团队拥有2个成员。现在我想要一个没有匹配团队名称的成员列表。逻辑如何?
我在想的是:
我没有编写任何代码,因为我对如何执行此操作的逻辑感到困惑。希望你们能给我一些反馈。
另外,我目前正在使用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
因为其他人有匹配的团队
答案 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 ;