我正在制作一个我们有电台的音乐播放器。我有一张叫做历史的表。它包含用户喜欢、不喜欢或跳过的歌曲的数据。我们存储一个人喜欢或不喜欢一首歌的所有时间。我们想要获取用户在给定电台中喜欢 (event_type=1) 或不喜欢 (event_type=2) 的所有歌曲的当前快照。
该表具有以下行:
id
(PK int 自动增量)station_id
(FK 整数)song_id
(FK 整数)event_type
(整数,1、2 或 3)
这是我的查询:
SELECT song_id, event_type, id
FROM histories
WHERE id IN (SELECT MAX(id) AS id
FROM histories
WHERE station_id = 187
AND (event_type=1 OR event_type=2)
GROUP BY station_id, song_id)
ORDER BY id;
有没有办法让这个查询在没有内部选择的情况下运行?我很确定如果没有它,它会运行得更快