Php 子查询:根据匹配的用户ID和团队ID从一个表中选择,并输出二维数组

Php 子查询:根据匹配的用户ID和团队ID从一个表中选择,并输出二维数组,php,mysql,sql,Php,Mysql,Sql,我想从登录用户中选择以获得以下字段:名称、用户名和用户id 我有一个单独的表格,表格中有team_id以及相关的用户id,因此例如,我可能有bob和team1、jack和team2、jim和paul和team2,所有行都是单独的,而不是bob和paul->team2。 如果我提供一个带有团队id的函数,我希望能够找到所有关联的用户id,然后将该数据与登录用户匹配,以输出一个二维数组,该数组包含所有团队成员的名称、用户名和用户id 选择用户名、用户标识、登录用户名称(如果存在)从团队中选择用户标识

我想从登录用户中选择以获得以下字段:名称、用户名和用户id

我有一个单独的表格,表格中有team_id以及相关的用户id,因此例如,我可能有bob和team1、jack和team2、jim和paul和team2,所有行都是单独的,而不是bob和paul->team2。 如果我提供一个带有团队id的函数,我希望能够找到所有关联的用户id,然后将该数据与登录用户匹配,以输出一个二维数组,该数组包含所有团队成员的名称、用户名和用户id

选择用户名、用户标识、登录用户名称(如果存在)从团队中选择用户标识(如果团队标识=团队标识)


我知道这与子查询有关,我以前从未做过,我觉得我走错了方向。此外,我该如何生成二维数组呢?

为什么只生成子查询??为什么不加入


如果要对现有子查询执行此操作,则它需要是相关子查询:

SELECT username, user_id, name
FROM login_users
WHERE EXISTS (SELECT user_id
              FROM teams
              WHERE team_id = $team_id and
                    teams.user_id = login_users.team_id
             );

您缺少用户id上的条件。该版本的查询表示,当团队id存在于团队中时,从登录用户获取所有行。

是的,我知道我缺少一个完整的部分。这是最有效的方法吗?在这种情况下,你似乎怀疑这是否是一种好的做事方式。或者我只是读了太多的台词。@Alex。这个答案是为了向您展示如何修改查询以获得正确的示例。通常,如果在联接和exists子句之间进行选择,我通常会选择联接,但并不总是选择联接。在teamsteam\u id、user\u id上有一个索引,性能应该与现有的类似,可能会有一点优势。感谢您的详细解释!
SELECT username, user_id, name
FROM login_users
WHERE EXISTS (SELECT user_id
              FROM teams
              WHERE team_id = $team_id and
                    teams.user_id = login_users.team_id
             );