Mysql 如何返回多个左连接记录?

Mysql 如何返回多个左连接记录?,mysql,sql,pdo,Mysql,Sql,Pdo,假设我有一个名为competition\u rounds的表,其中包含比赛的所有回合,在特定的季节中可用: 我想返回此表中所有可用的round\u id,问题是我只知道round\u id,因此在本例中542 如果你看一下记录,你会发现这一轮与1607赛季有关。我还需要返回round_id=543544545 我试过了,但没有成功: $query = "SELECT r.id FROM `competition_rounds` LEFT JOIN competition_rounds r ON

假设我有一个名为
competition\u rounds
的表,其中包含
比赛的所有
回合
,在特定的
季节
中可用:

我想返回此表中所有可用的
round\u id
,问题是我只知道
round\u id
,因此在本例中
542

如果你看一下记录,你会发现这一轮与
1607
赛季有关。我还需要返回round_id=543544545

我试过了,但没有成功:

$query = "SELECT r.id
FROM `competition_rounds`
LEFT JOIN competition_rounds r ON r.id = :round_id
LEFT JOIN competition_seasons s ON s.id = r.season_id
WHERE r.id = 542";

$sql = $this->db->prepare($query);

$sql->bindParam("round_id", $args["round_id"]);
$sql->execute();

$result = $sql->fetchAll();
return $response->withJson($result); 
但这将多次返回与参数相同的圆传递

假设我有一张名为competition_rounds的表,其中包含所有 在特定季节可进行的几轮比赛:

我要返回此表中所有可用的圆id,问题是 我只知道一个圆的id,所以在这个例子中是542

假设图像是您的表和数据
这个查询应该可以做到这一点

SELECT
 competition_rounds.round_id
FROM 
 competition_rounds 
WHERE
 competition_rounds.season_id
IN (    
  SELECT 
   competition_rounds.season_id
  FROM 
   competition_rounds
  WHERE 
   competition_rounds.id = 542
)

如果我理解正确,您需要编写一个子查询,通过
id
获取
seasure\u id
,然后使用 子查询
季节id
以获取数据

我有一个问题,为什么要
左键加入竞争\u seasures
表,因为您没有使用其中的任何列

SELECT r.id
FROM `competition_rounds` r
INNER JOIN(
    SELECT r.season_id season_id 
    FROM competition_rounds r 
    WHERE r.id = 542
) t ON r.season_id = t.season_id
LEFT JOIN competition_seasons s ON s.id = r.season_id

添加一些示例表数据和预期结果-作为格式化文本,而不是图像。