我正在嘗試聯接到表和上,并獲得類型的結果ClassBookingclasses.id = bookings.class_idDisplayBookingtype Class struct { Id int `json:"id"` Name string `json:"name"`}type Booking struct { Id int `json:"id"` User string `json:"user"` Members int `json:"members"` ClassId int `json:classid` //Class Class `gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"`}type DisplayBooking struct { Id int `json:"id"` User string `json:"user"` Members int `json:"members"` ClassId int `json:classid` ClassName string `json:"classname"`}為此,我嘗試了gorm和方法Scan()Rows()func returnAllBookings(w http.ResponseWriter, r *http.Request) { bookings := []DisplayBooking{} db.Model(&Booking{}).Select("bookings.id, bookings.user, bookings.members, bookings.class_id, classes.name").Joins("left join classes on bookings.class_id = classes.id").Scan(&bookings) fmt.Println("Endpoint Hit: returnAllBookings") rows, err := db.Table("bookings").Select("bookings.id, bookings.user, bookings.members, bookings.class_id, classes.name").Joins("left join classes on bookings.class_id = classes.id").Rows() if err != nil { return } for rows.Next() { log.Println(rows) } json.NewEncoder(w).Encode(bookings)}Scan()在class_name字段中返回空值,雖然似乎可以完成工作,但輸出格式不是JSON編碼輸出Rows()Scan()[{"id":1,"user":"test1","members":1,"ClassId":2,"classname":""},{"id":2,"user":"test2","members":2,"ClassId":1,"classname":""}]Rows()輸出(控制臺) - 粗體值是正確的,但有很多不必要的信息my-go-app_1 | 2021/04/09 07:42:09 &{0xc00021e1b0 0x6dcfa0 0xc00026adc0 <nil> <nil> {{0 0} 0 0 0 0} false <nil> **[1 test1 1 2 business]**}my-go-app_1 | 2021/04/09 07:42:09 &{0xc00021e1b0 0x6dcfa0 0xc00026adc0 <nil> <nil> {{0 0} 0 0 0 0} false <nil> **[2 test2 2 1 first]**}有沒有辦法讓代碼與函數一起工作?Scan()
1 回答

紅糖糍粑
TA貢獻1815條經驗 獲得超6個贊
你可以用 做,字段中沒有值,因為字段的默認值是 ,但是你要匹配的列是 ,這兩者不匹配。Scan
class_name
DisplayBooking
gorm tag name
class_name
name
您可以添加列別名來解決此問題,將表達式更改為以下表達式:Scan()
db.Debug().Model(&Booking{}).Select("bookings.id, bookings.user, bookings.members, bookings.class_id, classes.name as class_name").Joins("left join classes on bookings.class_id = classes.id").Scan(&bookings)
- 1 回答
- 0 關注
- 237 瀏覽
添加回答
舉報
0/150
提交
取消