You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL多表连接时如何按主表条数限制返回所有关联子表行结果

问题原因

你现有语句的LIMIT 10作用于LEFT JOIN执行完成后的合并结果集,而非先筛选10部电影再做关联,因此只会返回合并后的前10行,无法拿到10部电影对应的全部关联分类数据。

正确查询语句

核心思路是先从movies表取出10条目标电影记录,再用这部分数据关联genres表即可,写法如下:

SELECT *
FROM (
    SELECT * FROM movies LIMIT 10
) AS target_movies
LEFT JOIN genres ON target_movies.id = genres.movie_id;
逻辑说明
  • 内层子查询先筛选出10条电影记录,避免关联后再截断结果
  • 外层用筛选后的10条电影和分类表做关联,最终返回的就是10部电影对应的所有关联分类记录,按照单部电影对应3条分类的设定,最终会返回30行结果。

内容的提问来源于stack exchange,提问作者Вячеслав Чернышов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:06:01