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

SQL查询需求:获取指定Playlist关联的完整Track数据

解决方法

你可以用子查询搭配SELECT t.*来拿到完整的Track数据,不用手动列所有Track字段,也不会带出其他表的字段:

SELECT t.*
FROM Track t
WHERE t.id IN (
    SELECT trackID
    FROM PlaylistItem
    WHERE playlistID IN (1, 4) -- 这里传入你要查询的播放列表ID数组
)
GROUP BY t.id; -- 去重,避免同一首歌因为多次出现在播放列表里重复返回

为啥这么写

  1. 内层子查询就是你之前用来获取trackID的逻辑,负责筛出目标播放列表里的所有歌曲ID
  2. 外层查询用Track表的id关联子查询结果,t.*会直接返回Track表的全部字段,不管以后字段怎么加、怎么改都不用改这句SQL
  3. 加GROUP BY t.id是因为同一首歌可能被加到多个播放项里,这样能保证每首歌只返回一次

执行后得到的结果

idtitle
2Foo
22Bar
222Byy

另外还有一种用JOIN的写法,效果一样:

SELECT DISTINCT t.*
FROM Track t
INNER JOIN PlaylistItem pi ON t.id = pi.trackID
WHERE pi.playlistID IN (1, 4);

这里用DISTINCT来实现去重,和上面的写法选哪种都行。

内容的提问来源于stack exchange,提问作者Woww

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:45:30