我正在Creative Commons下创建一个MySQL音乐数据库。我是MySQL新手,所以我不确定这是否是正确的设置,如果是,如何查询它。 这是我的表格:
- `artist`
- `id` - artist id
- `name` - artist name
- `genre`
- ` id ` - genre id
- ` name ` - genre name
- `license`
- `id` - license id
- `name` - license name
- `song`
- `id` - song id
- `artist ` - artist id
- `title` - song title
- `license ` - license id
- `link` - link to song
- `songgenre`
- `genre` - genre id
- `song` - song id
我希望它能够提供这些信息:
------------------------------------------------
|artist | song title| genre(s)| license | link |
-----------------------------------------------
非常感谢任何帮助。
编辑:类型的一个例子是:
-------------------------
| classical, orchestral |
-------------------------
基本上是该歌曲所有类型的列表。
答案 0 :(得分:0)
在阅读了许多其他Stack Overflow答案和W3 Schools之后,我最终拼凑了代码。 这是代码:
SELECT song.id, artist.name, song.title, genre.name, license.name, song.url
FROM songs
INNER JOIN artist ON artist.id=song.artist
INNER JOIN license ON license.id = song.license
INNER JOIN songgenre r ON song.id = r.song_id
INNER JOIN genres ON r.genre_id = genres.id
这给了我一个结果:
---------------------------------------------------
|id|artist_title|title|genre_name|license_name|url|
---------------------------------------------------
|1 | Artist |Song1| Genre1 | License |url|
---------------------------------------------------
|1 | Same Artist|Song1| Genre2 | License | url|
---------------------------------------------------
如果我弄清楚如何将两种类型放在同一行中,我会更新答案。