LEFT JOIN和MAX

时间:2015-07-29 15:17:24

标签: mysql sql

我有一个像这样的SQL请求:

SELECT *, MAX(dateFin)
FROM t1 LEFT JOIN
     t2
     ON t1.id = t2.idUtl
GROUP BY t2.dateFin
ORDER BY t1.dateCreation
limit 0,10

我有这张表:

t1                         t2   
id   dateCreation          id   idUtl   dateFin
1    2015-02-25            1    1       2015-01-10
2    2015-02-22            2    1       2014-09-12
3    2015-06-20            3    3       2014-08-23

所以根据我的要求,我得到了这个结果:

t1.id   dateCreation   t2.id   idUtl   dateFin
3       2015-06-20     3       3       2014-08-23
1       2015-01-10     1       1       2015-01-10

我的问题是我也想要这一行

t1.id   dateCreation   t2.id   idUtl   dateFin
2       2015-02-22     NULL    NULL    NULL

我在我的请求中尝试使用另一个SELECT,但它没有用,我认为这不是一个好主意。

2 个答案:

答案 0 :(得分:0)

这是你想要的吗?

SELECT t1.*, MAX(t2.dateFin)
FROM t1 LEFT JOIN
     t2
     ON t1.id = t2.idUtl
GROUP BY t1.id
ORDER BY t1.dateCreation
limit 0, 10;

我认为问题是你的group by条款。

答案 1 :(得分:0)

我找到了解决方案:

SELECT  * from t1
left JOIN t2 ON t1.id = t2.idUtl
and date_fin=(select  MAX(t2.date_fin) from t2 where t1.id = t2.id_candidat )
ORDER BY t1.dateCreation
limit 0,10