Php PDO查询中返回的额外列

Php PDO查询中返回的额外列,php,mysql,arrays,pdo,resultset,Php,Mysql,Arrays,Pdo,Resultset,我使用PDO内部连接三个表:“用户”、“团队”和中间表“团队用户”。“teams\u users”处理用户和团队之间的多对多关系。许多用户可以加入一个团队。每个团队可以有许多用户 其思想是从用户有权限的“teams”表(在teams\u users表中)获取团队ID的数组 $username被传递到函数中 回显$query时,如下所示: SELECT teams_users.team_id FROM users INNER JOIN teams_users ON users.id = teams

我使用PDO内部连接三个表:“用户”、“团队”和中间表“团队用户”。“teams\u users”处理用户和团队之间的多对多关系。许多用户可以加入一个团队。每个团队可以有许多用户

其思想是从用户有权限的“teams”表(在teams\u users表中)获取团队ID的数组

$username被传递到函数中

回显$query时,如下所示:

SELECT teams_users.team_id FROM users INNER JOIN teams_users ON users.id = teams_users.user_id INNER JOIN teams ON teams.id = teams_users.user_id WHERE users.username = :username ORDER BY teams.id ASC

public function findTeamsByUsername($username = "") {
    $query = "SELECT teams_users.team_id " .
            "FROM users " .
            "INNER JOIN teams_users " .
            "ON users.id = teams_users.user_id " .
            "INNER JOIN " . $this->table . " " .
            "ON " . $this->table . ".id = teams_users.user_id " .
            "WHERE users.username = :username " .
            "ORDER BY teams.id ASC";
    echo $query;

    $stmt = $this->pdo->prepare($query);
    $stmt->bindParam(':username', $username, PDO::PARAM_STR);

    $r = $stmt->execute();
//        $stmt->debugDumpParams();

    if (!$r) {
        return null;
    } else {
        // $teamSet = $stmt->fetchAll(PDO::FETCH_ASSOC);
        $teamSet = $stmt->fetchAll();
        return $teamSet;
    }
}
MySQL Workbench中的输出是: 团队id 1. 二,

PHP中的输出为: 数组([0]=>Array([team\u id]=>1[0]=>1)[1]=>Array([team\u id]=>2[0]=>2

除了[0]=>1和[0]=>2来自何处之外,PHP的输出是有意义的?我不懂的是粗体字。select不应该返回一列吗


将返回简化为单个ID数组的好处如下:[1,2]

尝试使用
fetchAll(PDO::FETCH_列,0)
。默认情况下,将返回包含关联索引和数字索引的“混合”数组。

请打开手册。感谢手动参考。我的经验法则是在提问之前花20-30分钟解决一个问题。