我将 Go 1.17 与 Sqlx 一起使用,但我不明白如何正确加入我的表。
这是我的结构(我的加入不是逻辑我只是用 sqlx 测试关节)
表专辑:
package album
import ".../api/v1/movie"
type Album struct {
ID string `json:"id"`
Title string `json:"title"`
Artist string `json:"artist"`
Price float64 `json:"price"`
MovieId int `json:"movie_id" db:"movie_id"`
movie.Movie
}
表电影:
package movie
type Movie struct {
ID string `json:"id"`
Year uint16 `json:"year"`
RentNumber uint32 `json:"rent_number" db:"rent_number"`
Title string `json:"title"`
Author string `json:"author"`
Editor string `json:"editor"`
Index string `json:"index"`
Bib string `json:"bib"`
Ref string `json:"ref"`
Cat1 string `json:"cat_1" db:"cat_1"`
Cat2 string `json:"cat_2" db:"cat_2"`
}
这就是我加入的方式:
albums := []Album{}
r.db.Select(&albums, "SELECT * FROM album a INNER JOIN movie m ON (m.id=a.movie_id)")
问题是这两个表具有相同的id字段,因此专辑id被电影 ID 覆盖,我丢失了它。
我该怎么做才能忽略电影id字段(因为我在字段中得到它并为专辑movie_id保留字段?idid