0
我有2个表名为projects
和tracklines
每个项目可以有多个tracklines。Mysql左加入另一个表与传递变量
我有一个SQL语句,将循环通过我的项目,但我希望能够加入只有1行trackline表。我想要做的是获取作为项目一部分的所有轨迹线,根据不止一个字段对其进行排序,并对其进行限制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_state
和trk_status
值。
我在想,我的子查询可能在哪里trk_project
= prd_id
但我不知道如何实现这一目标。
我忘了提及我已经做到了,即使我的代码没有提供它。我遇到的主要问题是,如果我从连接中删除“LEFT”,则不返回结果集,这意味着没有连接正在完成。我想我用我加入2个表的逻辑出了问题。 – Justin
使它仅仅是一个'JOIN'使它成为一个默认的'INNER JOIN',其中只有在查询两边都有匹配的记录时才会得到结果 - 这意味着您的连接中的ON子句不起作用对。 –
是的,我明白JOINS和LEFT JOINS的区别。如果我在不使用子查询的情况下执行LEFT JOIN,我会得到结果。我猜我正在使用的方法是什么导致连接不起作用。 – Justin