Mysql 如何合并两个单元格以查找重复的单元格,然后只列出最新的单元格?
我有一个名为element_location的表。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
该表有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)的最新记录组别as2 1234 2 A 2019-01-02
从未重复过?抱歉@RaymondNijland我很难解释我需要什么。很好,我必须加入WHERE子句。谢谢。但我不明白为什么“位置”在组别中?答案更新..避免位置。。(取决于您用于评估重复..的列)…有了所有这些示例..我认为技术是明确的..使用子查询对您需要的值进行分组match@BjörnC如果您只需要知道位置A
,或者表格中只填写了位置A
,您可以从scaisEdge优化第一个查询,因为不清楚您是否有更多位置。。