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
或者您可以添加其他加入,以便获取您的团队详细信息等。
我想从两个不同的 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
或者您可以添加其他加入,以便获取您的团队详细信息等。