我有一個結(jié)構(gòu)Person:type Person struct { Id int64 Name string Colors []string}它應(yīng)該從person表中獲取其數(shù)據(jù):id | name---------1 | Joe2 | Moe和一張person_color桌子:person_id | color-----------------1 | black1 | blue2 | green通過SELECT p.id, p.name, pc.color FROM person AS p INNER JOIN person_color AS pc ON pc.person_id = p.id我將兩個表合并到:id | name | color-----------------1 | Joe | black1 | Joe | blue2 | Moe | green目前我唯一能想到的就是在迭代時手動映射顏色rows.Next()(注意:只是虛擬代碼):ps := make([]People, 0)rows, err := db.Query("SELECT ...")for rows.Next() { var p Person err := rows.Scan(&p.Id, &p.Name, &p.Color[0]) exists := false for _, ps := range ps { if ps.Id == p { exists = true ps.Color = append(ps.Color, p.Color) } } if !exists { ps = append(ps, p) }}盡管這可行,但這很煩人,因為映射到切片字段是一種常見操作。有什么方法可以使用sql或sqlx在所有切片字段上使上述通用?
- 2 回答
- 0 關(guān)注
- 201 瀏覽
添加回答
舉報
0/150
提交
取消