【问题标题】:Need help spotting an SQL syntax error in a small query需要帮助发现小查询中的 SQL 语法错误
【发布时间】:2016-09-23 03:24:04
【问题描述】:

我收到以下代码“第 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 很陌生,所以我确定我做错了什么是我不知道的。但在互联网上搜索了一段时间后,我看不出我在语法上可能做错了什么。

任何帮助/建议将不胜感激,谢谢!

【问题讨论】:

  • 你有两个“发件人”...

标签: mysql sql database syntax relational-database


【解决方案1】:

应该是这样的

JOIN album_genre ON album_genre.album_id = albums.album_id

而不是

FROM album_genre

【讨论】:

  • 那..实际上很有意义..我不知道我在想什么:|谢谢杰森!
【解决方案2】:

这是你的 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'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 2021-10-13
    • 2011-10-09
    • 1970-01-01
    • 2016-07-04
    • 2016-07-26
    相关资源
    最近更新 更多