Mysql 如何合并两个单元格以查找重复的单元格,然后只列出最新的单元格?

Mysql 如何合并两个单元格以查找重复的单元格,然后只列出最新的单元格?,mysql,Mysql,我有一个名为element_location的表。 该表有4列:obj\U nr、el\U nr、位置和扫描日期 该表可以如下所示: id obj_nr el_nr location date_scanned 1 1234 1 A 2019-01-01 2 1234 2 A 2019-01-02 3 1234 1 A

我有一个名为element_location的表。
该表有4列:obj\U nr、el\U nr、位置和扫描日期

该表可以如下所示:

id    obj_nr    el_nr    location    date_scanned
1      1234      1        A           2019-01-01
2      1234      2        A           2019-01-02
3      1234      1        A           2019-01-03
现在我想选择一个组合
obj_nr
el_nr
的位置来查找我的副本。(第1行和第3行)在选择中,我只想打印最新的一行。我通过扫描的
日期列获取最新信息

如何进行选择以提供第2行和第3行中的所有数据。(离开第1行,因为第3行有相同的
obj_nr
&
el_nr
和更新的日期

我试过:

$query = "SELECT DISTINCT CONCAT(obj_nr, el_nr), obj_nr, el_nr, location, date_scanned 
    FROM element_location 
    WHERE obj_nr = :obj_nr 
    ORDER BY date_scanned DESC";

看看你的样品,你似乎需要

select max(id) id , obj_nr, el_nr, location, max(date_scanned)
from  my_table 
group by  obj_nr,  el_nr, location 
或者,如果你不介意位置,但只为最大日期

select  m2.id, m2.obj_nr, m2.el_nr ,  m2.location,   m2.date_scanned
from  my_table m2
from  (
  select  obj_nr,  el_nr, max(date_scanned) max_date 
  from my_table  
  group by  obj_nr,    el_nr
) t ON  t.obj_nr = m2.obj_nr and t.el_nr = m2.el_nr and t. = m2.date_scanned

由于相互矛盾,无法理解滴度/问题与预期结果描述的结合。听起来你只是想得到每个(obj_nr,el_nr)的最新记录组别as
2 1234 2 A 2019-01-02
从未重复过?抱歉@RaymondNijland我很难解释我需要什么。很好,我必须加入WHERE子句。谢谢。但我不明白为什么“位置”在组别中?答案更新..避免位置。。(取决于您用于评估重复..的列)…有了所有这些示例..我认为技术是明确的..使用子查询对您需要的值进行分组match@BjörnC如果您只需要知道位置
A
,或者表格中只填写了位置
A
,您可以从scaisEdge优化第一个查询,因为不清楚您是否有更多位置。。