func findEntryByID(db *sql.DB, entryID int) (dash.Entry, error) { var entry = dash.Entry{ ID: entryID, } var err = db.QueryRow(`SELECT e.title, e.type, e.anchor, e.body, e.body_rendered, e.score, e.user_id, e.removed_from_public, e.public, u.username FROM entries AS e INNER JOIN users AS u ON u.id = e.user_id WHERE e.id = ?`, entryID, ).Scan( &entry.Title, &entry.Type, &entry.Anchor, &entry.Body, &entry.BodyRendered, &entry.Score, &entry.UserID, &entry.RemovedFromPublic, &entry.Public, &entry.AuthorUsername) if err != nil { return entry, err } var rows *sql.Rows rows, err = db.Query(`select t.name FROM teams AS t inner join entry_team ON t.id = entry_team.team_id where entry_team.entry_id = ?`, entryID) if err != nil { return entry, err } defer rows.Close() entry.Teams = make([]string, 0) for rows.Next() { var teamName string if err := rows.Scan(&teamName); err != nil { return entry, err } entry.Teams = append(entry.Teams, teamName) } return entry, err }