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