音乐网站数据库中的3个表:
用户(用户id、名称、密码)
曲目(曲目id,标题)
用户喜欢此曲目(用户id,曲目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' )
我还想在客户端应用程序中显示一首特定歌曲的emoji。如果他喜欢它来显示like emoji资源,如果他不喜欢这首歌来显示其他资源。这个查询完成了任务:
SELECT COUNT(`track_id`) AS `liked` FROM `user_likes_this_track`
WHERE `user_id` = '$logged_user_id'
AND `track_id` = '$track_id';
如果用户喜欢这首歌,则liked为1,如果用户不喜欢,则为0
但是,问题是当他去搜索一个他可能喜欢或不喜欢的曲目过滤列表。
从用户的Angular 来看,我试图从搜索结果中得到track\u id,track\u title,liked,甚至是所有track的组合,得到如下结果:
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
...
有没有可能在不改变和添加额外表的情况下为这个解决方案找到一个神奇的查询?
谢谢你们宝贵的时间。
2条答案
按热度按时间mec1mxoz1#
你可以用
x6yk4ghg2#