多表联查,sql查出好几条出来时间都重复的记录,怎么保留时间最早的那条,重复的查询不显示
时间: 2024-03-15 09:46:44 浏览: 24
你可以使用以下 SQL 语句来查询多个表中时间重复的记录,并保留时间最早的那条,并且不显示重复的记录:
```
SELECT DISTINCT t1.*
FROM table1 t1
JOIN (
SELECT column1, column2, MIN(time_column) AS min_time
FROM table1
GROUP BY column1, column2
HAVING COUNT(*) > 1
) t2 ON t1.column1 = t2.column1 AND t1.column2 = t2.column2 AND t1.time_column = t2.min_time
UNION ALL
SELECT DISTINCT t3.*
FROM table2 t3
JOIN (
SELECT column1, column2, MIN(time_column) AS min_time
FROM table2
GROUP BY column1, column2
HAVING COUNT(*) > 1
) t4 ON t3.column1 = t4.column1 AND t3.column2 = t4.column2 AND t3.time_column = t4.min_time
WHERE ...
```
请替换 `table1`、`table2`、`time_column`、`column1`、`column2` 等为你自己的表名和列名。这个语句会查询两个表,并且连接列 `column1` 和 `column2`,并保留时间最早的那条记录。同时,使用 `DISTINCT` 关键字去掉重复的记录。你需要根据实际情况修改列名和条件。