mysql left join 表里有多条记录,只取一条记录的方法
时间: 2023-06-14 18:08:02 浏览: 331
mysql使用GROUP BY分组实现取前N条记录的方法
可以使用子查询或者GROUP BY语句来实现只取一条记录。
1. 子查询:
```
SELECT *
FROM tableA
LEFT JOIN (SELECT id, MAX(time) AS max_time FROM tableB GROUP BY id) AS temp
ON tableA.id = temp.id
```
这个语句会先在tableB表中对id进行分组,并取出每个组内的最大time,然后将结果与tableA进行LEFT JOIN。
2. GROUP BY:
```
SELECT *
FROM tableA
LEFT JOIN tableB
ON tableA.id = tableB.id
GROUP BY tableA.id
```
这个语句会先进行LEFT JOIN,然后再对结果按照tableA.id进行分组。由于GROUP BY会自动去重,所以只会取每组内的第一条记录。但是注意,这种做法可能会导致一些信息的丢失,因为被去重掉的记录可能包含有用的信息。
阅读全文