我有这个查询可以在mysql上正常工作并返回预期的结果,但是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)
}
在运行时,没有任何结果,但是终端中出现以下错误消息:
查询单个表时我没有这个问题。
所以我想知道这里出了什么问题以及如何解决?
更新:以下是这些结构:
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表中获得列。
尝试查询“SELECT笑话。* FROM joke INNER JOIN jokevote”以仅从笑话表中获取列。
关于go - 使用sqlx进行联接会导致 'missing destination name',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45216783/