Php 选择不在特定团队中的所有用户

Php 选择不在特定团队中的所有用户,php,sql,Php,Sql,我想从数据库中选择不在我正在查看的特定团队ID中的所有用户。尝试创建“添加成员”函数,该函数应列出不在活动团队中的所有成员 我似乎无法正确理解SQL。。要么我什么都得不到,要么我仍然有一些活跃团队的成员,还有一些我不想要的成员 所以在本例中,在网站上查看团队ID 77时,我只想查看管理员,因为他是不在该特定团队中的一名成员 任何帮助都将不胜感激。我将添加此内容作为回答,以解释您需要做什么: 你需要让你的连接正确。问题是您的团队id上没有可加入的外键。您应该能够与用户或任何其他对象加入团队表。但要

我想从数据库中选择不在我正在查看的特定团队ID中的所有用户。尝试创建“添加成员”函数,该函数应列出不在活动团队中的所有成员

我似乎无法正确理解SQL。。要么我什么都得不到,要么我仍然有一些活跃团队的成员,还有一些我不想要的成员

所以在本例中,在网站上查看团队ID 77时,我只想查看管理员,因为他是不在该特定团队中的一名成员


任何帮助都将不胜感激。

我将添加此内容作为回答,以解释您需要做什么:


你需要让你的连接正确。问题是您的团队id上没有可加入的外键。您应该能够与用户或任何其他对象加入团队表。但要做到这一点,你需要团队id密钥

您的表很好,因为您拥有团队名称和用户的唯一信息和ID。但是你没有办法加入他们


向users表中添加一列,该列的名称和架构与team表中的团队id相同。谢谢你的加入

我将此作为一个回答,来解释您需要做什么:


你需要让你的连接正确。问题是您的团队id上没有可加入的外键。您应该能够与用户或任何其他对象加入团队表。但要做到这一点,你需要团队id密钥

您的表很好,因为您拥有团队名称和用户的唯一信息和ID。但是你没有办法加入他们


向users表中添加一列,该列的名称和架构与team表中的团队id相同。谢谢你的加入

我想这就是你需要的:

SELECT *
FROM User
WHERE userid NOT IN (
    SELECT userid
    FROM UserTeam
    WHERE teamid = ...
)

它返回除特定团队中的用户之外的所有用户

我想这就是你需要的:

SELECT *
FROM User
WHERE userid NOT IN (
    SELECT userid
    FROM UserTeam
    WHERE teamid = ...
)

它返回除特定团队中的用户之外的所有用户

>P>P。 使用您的示例,查询不在team 77中的所有用户

select u.* 
from Users as u
join UserTeam as ut on ut.userid = u.userid
where ut.teamid <> 77

内或不在子句中有一个极限,考虑加入。< /P> 使用您的示例,查询不在team 77中的所有用户

select u.* 
from Users as u
join UserTeam as ut on ut.userid = u.userid
where ut.teamid <> 77

@RonDeijker的回答是正确的。其他方法是

SELECT ...
FROM Users u
WHERE NOT EXISTS (
  SELECT 1
  FROM UserTeam ut
  WHERE ut.userid = u.userid
  AND ut.teamid = <whatever>
)


@RonDeijker的回答是正确的。其他方法是

SELECT ...
FROM Users u
WHERE NOT EXISTS (
  SELECT 1
  FROM UserTeam ut
  WHERE ut.userid = u.userid
  AND ut.teamid = <whatever>
)


请显示您的尝试您需要正确加入。问题是您的团队id上没有可加入的外键。您应该能够与用户或任何其他对象加入团队表。但是要做到这一点,您需要在其中输入TeamId键。Remove table UserTeam在User表中设置TeamId。查询如下所示:选择*FROM user WHERE teamid!=77@Tom仅当一个用户不能在多个团队中时才可能。-不存在的地方,或者,等效地,也可以使用外部联接。请显示您的尝试您需要获得正确的联接。问题是您的团队id上没有可加入的外键。您应该能够与用户或任何其他对象加入团队表。但是要做到这一点,您需要在其中输入TeamId键。Remove table UserTeam在User表中设置TeamId。查询如下所示:选择*FROM user WHERE teamid!=77@Tom仅当一个用户不能在多个团队中时才可能。-不存在的地方,或者,等价地,也可以使用外部联接。所以它周围没有直接SQL?啊,sheit,我有麻烦了,你的队号上没有外键,这是不对的。他正确地安排了团队。是的。。问题是,用户应该能够加入多个团队,任意多个团队,我不希望用户表中充斥着不同团队中的相同用户。我将在这里尝试另一个答案:所以它周围没有直接的SQL?啊,sheit,我有麻烦了,你的队号上没有外键,这是不对的。他正确地安排了团队。是的。。问题是,用户应该能够加入多个团队,任意多个团队,我不希望用户表中充斥着不同团队中的相同用户。我将在这里尝试其他答案之一:如果一个用户可以在多个团队中,则不起作用。如果一个用户可以在多个团队中,则不起作用。