php - Mysql 与另一个带有传递变量的表进行左连接

标签 php mysql join subquery left-join

我有 2 个名为 projectstracklines 的表 每个项目都可以有多个轨迹线。

我有一个 SQL 语句将循环遍历我的项目,但我希望能够加入只有 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 ...

现在它仅检索项目表中的字段。

关于php - Mysql 与另一个带有传递变量的表进行左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7934987/

相关文章:

sql - 对多个表进行联接和逆透视

mysql - 使用选择填充值

php - 使用 PHP 读取 JSON 数据

php - PHP中有部分文件下载的好实现吗?

php - 计算哪些时区在 PHP 上具有特定的当前本地时间

php - 在 GoDaddy 主机上使用 phpmailer 发送电子邮件

MySql 函数没有返回正确的结果

mysql - 如何根据表的较旧条目更新代理键

php - 使用 PHP 比较数据库中的值

mysql - 获取列总计和 GROUP BY 总计