gpt4 book ai didi

mysql - SQL数据库查询/结构

转载 作者:行者123 更新时间:2023-11-29 06:42:49 25 4
gpt4 key购买 nike

enter image description here

在下图/上图的情况下。我希望能够查询,歌曲中有哪些音乐家以及音乐家正在播放哪些歌曲...

  1. 对于这种情况,这是正确的模型吗?
  2. 我是否只查询“SongMusicians”表?

这是大学的作业,我在理论方面遇到了问题。

我最初的想法是将 songId 放在音乐家表中,反之亦然。但有人告诉我需要一个“中介”表。

任何帮助都会很棒

谢谢

最佳答案

对于那种性质的问题,这看起来没问题。两个主表之间的链接表,让一个音乐家拥有多首歌曲,一首歌曲拥有多个音乐家。如果你没有它并且你在表音乐家中添加了一个 songid(如果你将 musicianid 放在歌曲中,同样的逻辑适用)你将不得不在音乐家每次参与歌曲时复制所有信息。那可不好。

要获取有关歌曲或其他音乐家的信息,您可以通过链接表加入表格以找到所需的信息。

要获取有关音乐家所在歌曲的所有信息,请执行以下操作:

SELECT s.*
FROM songs s
INNER JOIN songmusicians sm ON sm.songid= s.songid
INNER JOIN musicians m ON sm.musicianid= m.musicianid
WHERE m.FirstName = 'Kurt' AND m.LastName = 'Kobain';

要获得参与您的歌曲的所有音乐家:

SELECT m.*
FROM songs s
INNER JOIN songmusicians sm ON sm.songid= s.songid
INNER JOIN musicians m ON sm.musicianid= m.musicianid
WHERE s.songTitle = 'Smells like teen spirit';

关于mysql - SQL数据库查询/结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20455385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com