连接表并选择最高日期值

时间:2013-10-24 03:49:11

标签: mysql sql join group-by max

这是我运行的查询

SELECT cl.cl_id, cc_rego, cc_model, cl_dateIn, cl_dateOut
FROM courtesycar cc LEFT JOIN courtesyloan cl
ON cc.cc_id = cl.cc_id

结果:

  
      
  1. 1 NXI955 Prado 2013-10-24 11:48:38 NULL
  2.   
  3. 2 RJI603 Avalon 2013-10-24 11:48:42 2013-10-24 11:54:18
  4.   
  5. 3 RJI603 Avalon 2013-10-24 12:01:40 NULL
  6.   

我想要的结果是按cc_rego值进行分组,并打印最新的cl_dateIn值。 (仅显示行数1,3)

我试图在日期和分组依据上使用MAX,但它结合了行,2和& 3同时显示dateIndateOut的最高值。

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。

我没有使用左连接,而是在where子句中添加了一个条件,该子句嵌入到dateIn的MAX中

SELECT cll.cl_id, cc.cc_id, cc_rego, cc_model, cll.cl_dateIn, cll.cl_dateOut
FROM courtesycar cc, courtesyloan cll
WHERE cl_dateIn = ( 
  SELECT  MAX( cl.cl_dateIn )
  FROM courtesyloan cl
  WHERE cl.cc_id = cc.cc_id )
AND cc.cc_id = cll.cc_id