如何查询至少关联1条Episodes记录的前10条Animes表数据
符合需求的SQL编写方案
方案1:EXISTS半连接查询(优先推荐)
这是性能最优的实现方式,只要匹配到对应动漫的任意一条剧集记录就会终止判断,不需要全量扫描关联数据:
SELECT a.Id, a.Name FROM Animes a WHERE EXISTS ( SELECT 1 FROM Episodes e WHERE e.Anime = a.Name ) LIMIT 10;
方案2:内连接+去重实现
如果你更习惯用关联查询的写法,可以用这种方式,注意必须加去重逻辑避免重复返回同一动漫的多条记录:
SELECT DISTINCT a.Id, a.Name FROM Animes a INNER JOIN Episodes e ON a.Name = e.Anime LIMIT 10;
方案选择说明
- 数据量较大时优先选
EXISTS方案,执行效率更高 - 如果你需要同时查询动漫的剧集统计数据(如总集数、最新集号等),可以选择JOIN方案搭配
GROUP BY和聚合函数实现扩展需求
内容的提问来源于stack exchange,提问作者kanohn
相关产品推荐
相关产品推荐

