如何在 Mysql 中使用 DATE 过滤重复的行
how to filter repeated rows using DATE in Mysql
我有 4 个表,我正在使用 LEFT JOIN 合并表并且一切正常。
这是我正在使用的查询
SELECT cont_details.* FROM depot_tracking
LEFT JOIN depot_details
ON depot_tracking.depot_details_id = depot_details.depot_details_id
LEFT JOIN cont_details
ON depot_tracking.cont_details_id = cont_details.cont_no
WHERE depot_details.depot_city = "maa"
AND depot_tracking.status = "0" AND depot_tracking.gate_out =""
现在我就这样出去了!
--------------------------------------------
cont_details_id | gate_in | cont_no
--------------------------------------------
1 | 05-05-2015 | dd
1 | 13-04-2015 | cc
2 | 23-03-2015 | bb
3 | 15-05-2015 | aa
1 | 21-02-2015 | dd
3 | 25-05-2015 | cc
2 | 30-03-2015 | bb
4 | 15-05-2015 | aa
现在我想根据 depot_tracking.gate_in
列过滤重复的行。
在这张图片中有 con_details_id (1) 现在来两次我只想要 19-04-2015(最后日期)最大日期,其余的必须是过滤器,对所有 2、3、 4 ,5 等..,
问题是我无法将 gate_in 列更改为日期格式,所以我曾经将列更改为 STRING TO DATE FORMATE 使用下面的查询
(str_to_date(d.gate_in,'%d-%m-%Y'))
所以请有人帮我过滤重复的行(只显示最大日期行)
现在期待输出
--------------------------------------------
cont_details_id | gate_in | cont_no
--------------------------------------------
1 | 05-05-2015 | dd
3 | 25-05-2015 | cc
2 | 30-03-2015 | bb
4 | 15-05-2015 | aa
只需订购您的 table 然后按 id
分组
SELECT
*
FROM
(
SELECT
*
FROM
table1
ORDER BY
cont_details_id ASC, gate_in DESC
) origin
GROUP BY
origin.cont_details_id
立即将 table1
替换为您的结果
SQL Fiddle: http://sqlfiddle.com/#!9/b90d5/1/0
我有 4 个表,我正在使用 LEFT JOIN 合并表并且一切正常。
这是我正在使用的查询
SELECT cont_details.* FROM depot_tracking
LEFT JOIN depot_details
ON depot_tracking.depot_details_id = depot_details.depot_details_id
LEFT JOIN cont_details
ON depot_tracking.cont_details_id = cont_details.cont_no
WHERE depot_details.depot_city = "maa"
AND depot_tracking.status = "0" AND depot_tracking.gate_out =""
现在我就这样出去了!
--------------------------------------------
cont_details_id | gate_in | cont_no
--------------------------------------------
1 | 05-05-2015 | dd
1 | 13-04-2015 | cc
2 | 23-03-2015 | bb
3 | 15-05-2015 | aa
1 | 21-02-2015 | dd
3 | 25-05-2015 | cc
2 | 30-03-2015 | bb
4 | 15-05-2015 | aa
现在我想根据 depot_tracking.gate_in
列过滤重复的行。
在这张图片中有 con_details_id (1) 现在来两次我只想要 19-04-2015(最后日期)最大日期,其余的必须是过滤器,对所有 2、3、 4 ,5 等..,
问题是我无法将 gate_in 列更改为日期格式,所以我曾经将列更改为 STRING TO DATE FORMATE 使用下面的查询
(str_to_date(d.gate_in,'%d-%m-%Y'))
所以请有人帮我过滤重复的行(只显示最大日期行)
现在期待输出
--------------------------------------------
cont_details_id | gate_in | cont_no
--------------------------------------------
1 | 05-05-2015 | dd
3 | 25-05-2015 | cc
2 | 30-03-2015 | bb
4 | 15-05-2015 | aa
只需订购您的 table 然后按 id
分组SELECT
*
FROM
(
SELECT
*
FROM
table1
ORDER BY
cont_details_id ASC, gate_in DESC
) origin
GROUP BY
origin.cont_details_id
立即将 table1
替换为您的结果
SQL Fiddle: http://sqlfiddle.com/#!9/b90d5/1/0