【问题标题】:SQL music playlist database queries from design来自设计的 SQL 音乐播放列表数据库查询
【发布时间】:2019-06-05 13:55:53
【问题描述】:

我正在尝试实现这个数据库设计。我是 mysql 新手,并不真正了解如何连接所有内容,所以我试图将每个查询分解成碎片..

数据库看起来像

歌曲:

id title length artist_id

艺术家:

id name

播放列表:

id title user_id 

播放列表_歌曲:

playlist_id song_id

用户:

id name email 

查询 - 获取用户播放列表名称和播放列表 ID

SELECT users.id,users.name,playlists.playlistname,playlists.id 
FROM users, playlists
WHERE users.user_id = playlists.users_id

outputs :
user_id | user_username | playlistname | id

如何使用输出中的 id 继续查询“更深”以获取 playlist_songs ?

对不起,如果我错了,请纠正我。

【问题讨论】:

  • 请使用更有用的显式连接而不是隐式(逗号)连接。谷歌如何加入 3 张桌子 = 那里有很多。

标签: mysql database relational-database


【解决方案1】:

要连接表,您可以使用Joins。如果你想从playlist_songs获取数据,你可以使用类似查询

SELECT users.id,users.name,playlists.playlistname,playlists.id, playlist_songs.song_id FROM users 
        inner join playlists on users.user_id = playlists.users_id
        inner join playlist_songs on playlist_songs.playlist_id = playlists.id
WHERE users.user_id = <user_id_of_user>

您可以将songs 表与playlist_songs 连接起来,然后将artists 表与songs 连接起来。

【讨论】:

  • 谢谢!!我是否在同一个查询中加入了带有 playlist_songs 的歌曲?
  • 是的,您可以加入同一个查询,并在 select 语句中包含该表中您需要的列。
  • 再次感谢您,我现在已经完成了我想要的!
猜你喜欢
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
  • 2014-05-18
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 1970-01-01
相关资源
最近更新 更多