音乐网站数据库中的 3 个表:
用户(用户 ID、名称、密码)
曲目(曲目 ID、标题)
user_likes_this_track ( user_id, track_id )
当某个特定用户登录时。使用 PHP、MySQL 和 JSON API,我可以从最后一个表中检查用户喜欢哪些歌曲。
SELECT * FROM `track` WHERE `id` IN (SELECT `track_id` FROM `user_likes_this_track` WHERE `user_id` = '$logged_user_id' )
我还想在客户端应用程序中显示特定歌曲的表情符号。如果他喜欢它就显示喜欢的表情符号资源,如果他不喜欢这首歌就显示其他资源。这个查询完成了这项工作:
SELECT COUNT(`track_id`) AS `liked` FROM `user_likes_this_track`
WHERE `user_id` = '$logged_user_id'
AND `track_id` = '$track_id';
如果用户喜欢这首歌,Liked为1,如果不喜欢,Liked 为0
但是,问题是当他去搜索包含他可能喜欢或不喜欢的曲目的过滤列表时。
从用户的角度来看,我试图从搜索结果中获取track_id、track_title、Likes甚至所有曲目的组合,以获得如下内容:
track_id, title, liked
1 ,'ZHU...' , 1 // he likes this song
2 ,'Sia...' , 1 // he likes SIA too
3 ,'other.' , 0 // 0 occurrence in user_likes_this_track
...
是否可以在不更改和添加额外表的情况下找到此解决方案的神奇查询?
感谢大家抽出宝贵的时间。
偶然的你
慕桂英3389331