Mysql左连接与另一个表传递变量


Mysql left join with another table with passed variable

我有两个名为projectstracklines的表每个项目都可以有多条轨道。

我有一个SQL语句,将循环通过我的项目,但我希望能够加入trackline表只有1行。我想做的是获取项目中的所有轨道线,根据多个字段对它们进行排序,并对其执行LIMIT 1,这样我就有了一个与项目连接的轨道线。

这是我目前为止写的:

SELECT Project.* FROM `project` AS `Project`
LEFT JOIN (
    SELECT *
    FROM `trackline`
    WHERE `trk_deleted` = '0'
    ORDER BY `trk_state`, `trk_status`
    LIMIT 1
) t ON t.`trk_project` = `prj_id`
ORDER BY `prj_name`

问题是,我没有得到trk_statetrk_status值在我的外部查询。

我在想我的子查询可以有WHERE trk_project = prd_id,但我不知道如何做到这一点。

您还需要从派生表中提取值:

SELECT Project.*, t.*
FROM ...

现在它只从Project表中检索字段。