使用 sqlx 加入导致 'missing destination name'
JOIN using sqlx causes 'missing destination name'
我的查询在 mysql 和 return 上运行良好,但 sqlx 难以处理:
var jokes []model.Joke
err := shared.Dbmap.Select(&jokes, "SELECT * FROM joke INNER JOIN jokevote ON joke.id=jokevote.joke_id AND jokevote.vote=? AND joke.user_id=?", 1, userId)
if err != nil {
log.Println(err)
}
在运行时,我没有得到任何结果,但在终端中出现以下错误消息:
missing destination name joke_id
我在查询单个 table 时没有遇到这个问题。
所以我想知道这里出了什么问题以及如何解决它?
更新: 以下是结构:
type Joke struct {
ID int `db:"id" json:"id"`
UserID int `db:"user_id" json:"user_id"`
Title string `db:"title" json:"title"`
Content string `db:"content" json:"content"`
...
}
type JokeVote struct {
ID int `db:"id" json:"id"`
JokeID int `db:"joke_id" json:"joke_id"`
UserID int `db:"user_id" json:"user_id"`
Vote int `db:"vote" json:"vote"`
}
当您执行 "SELECT * FROM joke INNER JOIN jokevote" 时,您将从 joke 和 jokevote table 中获得列。
尝试查询 "SELECT joke.* FROM joke INNER JOIN jokevote" 以仅从笑话 table.
中获取列
我的查询在 mysql 和 return 上运行良好,但 sqlx 难以处理:
var jokes []model.Joke
err := shared.Dbmap.Select(&jokes, "SELECT * FROM joke INNER JOIN jokevote ON joke.id=jokevote.joke_id AND jokevote.vote=? AND joke.user_id=?", 1, userId)
if err != nil {
log.Println(err)
}
在运行时,我没有得到任何结果,但在终端中出现以下错误消息:
missing destination name joke_id
我在查询单个 table 时没有遇到这个问题。
所以我想知道这里出了什么问题以及如何解决它?
更新: 以下是结构:
type Joke struct {
ID int `db:"id" json:"id"`
UserID int `db:"user_id" json:"user_id"`
Title string `db:"title" json:"title"`
Content string `db:"content" json:"content"`
...
}
type JokeVote struct {
ID int `db:"id" json:"id"`
JokeID int `db:"joke_id" json:"joke_id"`
UserID int `db:"user_id" json:"user_id"`
Vote int `db:"vote" json:"vote"`
}
当您执行 "SELECT * FROM joke INNER JOIN jokevote" 时,您将从 joke 和 jokevote table 中获得列。 尝试查询 "SELECT joke.* FROM joke INNER JOIN jokevote" 以仅从笑话 table.
中获取列