MySQL 从两个不同的表循环

MySQL Loop from two different Tables

我想从两个不同的 table 中获取值。 我的问题是 table 彼此没有关系,但 "team_id"

我有一个 "player" 和一个 "player_stat" table。

我的结果应该是这样的:

玩家名(来自"player"table)
得分:8,助攻:2,犯规:0(来自"player_stat"table)

玩家名2(来自"player"table)
得分:8,助攻:2,犯规:0(来自"player_stat"table)


这是我的尝试:

<?php 
/* PLAYERSTAT */
$attrs = array(PDO::ATTR_PERSISTENT => true);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $conn->prepare("SELECT data.player_stat
    FROM 
    (SELECT * from player_stat
    UNION
    SELECT * from player) data                              
");
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
?>  
echo $row["playername"]."<br>";
echo $row["points"]." ".$row["assists"];
<?php  }
?>

我的table我的

玩家: ID team_id 姓名 已创建

player_stat: ID team_id 积分 助攻 犯规 已创建

将您的 select 语句修改为:

SELECT * FROM player, player_stat WHERE player.team_id = player_stat.team_id

以上是根据您的说法,他们有共同点 team_id。如果这不是您要实现的目标,请完善您的问题和 post 数据库模式。

您的 SQL 查询可能如下所示(假设 team_id 应该连接统计数据和玩家):

SELECT
 player.playername,
 player_stat.points,
 player_stat.assists,
 player_stat.fouls
FROM
 player
 LEFT JOIN player_stat ON (player.team_id = player_stat.team_id)

但是有点奇怪,你的表之间的唯一关系是 team_id。如果输出应该是每个球员,你必须介绍统计数据和球员之间的关系。

说,你的球员可以在一个队里,应该有一个team_id和一个player_id。然后您的 JOIN 将显示为:

LEFT JOIN player_stats ON (player.player_id = player_stats.player_id)

此外,您还可以查询您的团队:

WHERE
 player.team_id = 55

或者您可以添加其他加入,以便获取您的团队详细信息等。