left join 只取一条
时间: 2023-07-06 20:35:20 浏览: 169
ThinkPHP采用原生query实现关联查询left join实例
left join 会将左表的所有记录和右表中匹配的记录组合在一起,如果左表中一条记录在右表中有多条匹配记录,则会产生多条结果。
如果你只想取左表中的一条记录和它匹配的右表记录,可以使用子查询或者 group by 来实现。
使用子查询可以这样写:
```
SELECT *
FROM left_table
LEFT JOIN (
SELECT *
FROM right_table
WHERE condition
) AS sub_right_table
ON left_table.key = sub_right_table.key
LIMIT 1
```
其中,子查询用来筛选出满足条件的右表记录,然后再和左表进行 left join,最后再用 LIMIT 1 取一条结果。
使用 group by 可以这样写:
```
SELECT *
FROM left_table
LEFT JOIN right_table
ON left_table.key = right_table.key
WHERE condition
GROUP BY left_table.key
LIMIT 1
```
其中,WHERE 子句用来筛选出满足条件的右表记录,然后再和左表进行 left join,最后再用 GROUP BY 和 LIMIT 1 取一条结果。
阅读全文