去和MySQL,不会拉所有列

I have 4 columns that I need to get with Go. When I run query in MySQL I get all 4 columns but when I try to do it with Go i get only 3 columns. Go code is:

type song struct {
    Id      int
    Artist  string
    Picture string
    Name    string
}

type data struct {
    Songs []song
}

db, err := sql.Open(sqlServer, sqlData)
checkErr(err)

rows, err := db.Query("SELECT s.id, a.name a_name, al.picture, s.song_name FROM music_songs s JOIN music_albums al ON s.album_id = al.id JOIN music_artists a ON a.id = s.artist_id WHERE s.artist_id = ? ORDER BY s.id ASC, al.id ASC", ar)
checkErr(err)

var songs []song
for rows.Next() {
    var id int
    var artist string
    var picture string
    var name string

    err = rows.Scan(&id, &artist, &picture, &name)
    songs = append(songs, song{id, artist, picture, name})
}

fmt.Println(songs)

When I run it with Go I get columns: id, artist and picture. I can't get song_name column.

When I run it in MySQL I get:

+----+---------+---------+--------------------------+
| id | a_name  | picture | song_name                |
+----+---------+---------+--------------------------+

I dont know how and why, but this code is working:

    type song struct {
        Id      int64
        Artist  string
        Name    string
        Picture string
    }

    type data struct {
        Songs []song
    }


    // Open database
    db, err := sql.Open(sqlServer, sqlData)
    checkErr(err)

    rows, err := db.Query("SELECT s.id, s.song_name, a.name, al.picture as artistName FROM music_songs s JOIN music_albums al ON s.album_id = al.id JOIN music_artists a ON a.id = s.artist_id WHERE s.artist_id = ? ORDER BY s.id ASC, al.id ASC", ar)
    checkErr(err)

    var id int64
    var songName string
    var artistName string
    var albumPicture string

    var songs []song
    for rows.Next() {

        err = rows.Scan(&id, &songName, &artistName, &albumPicture)
        songs = append(songs, song{id, songName, artistName, albumPicture})

    }