需要帮助在小型查询中发现SQL语法错误

时间:2016-09-23 03:24:05

标签: mysql sql database syntax relational-database

我收到以下代码的“第5行”的SQL语法错误。

SELECT artists.name, albums.title, genres.genre
    FROM artist_album
        JOIN artists ON artist_album.artist_id = artists.id
        JOIN albums ON artist_album.album_id = albums.album_id
    FROM album_genre
        JOIN genres ON album_genre.genre_id = genres.genre_id
        WHERE genres.genre = 'Pop' OR genres.genre = 'Rock'

我想要找到的是数据库中所有发布“摇滚”或“流行”专辑的艺术家。查询应返回艺术家姓名,专辑标题和专辑类型..

我的表是:

albums
    album_id
    released
    title

artist
    id
    name

genres
    genre_id
    genre

album_genre
    album_id
    genre_id

artist_album
   album_id
   artist_id

我对SQL很陌生,所以我确定我所做错的是我不知道的事情......但是在网上挖了一下之后,我看不出我在语法上做错了什么。

非常感谢任何帮助/建议,谢谢!

2 个答案:

答案 0 :(得分:1)

看起来应该是

JOIN album_genre ON album_genre.album_id = albums.album_id

而不是

FROM album_genre

答案 1 :(得分:0)

这是你的SQL:

SELECT artists.name, albums.title, genres.genre
From artists join artist_album On artist_album.artist_id = artists.id
join albums ON artist_album.album_id = albums.album_id
join album_genre ON album_genre.album_id =albums.album_id
JOIN genres ON album_genre.genre_id = genres.genre_id
        WHERE genres.genre = 'Pop' OR genres.genre = 'Rock'