我有两张table
person {
id
}
email {
person_id
}
个人和电子邮件之间存在一对多关系。
我得走了
type Person struct {
ID string
Emails []*string
}
我想做一个查询并扫描到 Person
数组中包含电子邮件的结构。
rows, _ := db.QueryContext(ctx, statement, ...)
people := []*Person{}
for rows.Next() {
var person *Person
rows.Scan(&person.ID, &person.Emails) // this can change as needed
people = append(people, person)
}
return people
为了实现这一点,查询将是什么?围棋代码还有什么需要改变的?
1条答案
按热度按时间pkbketx91#
这实际上更多的是sql问题。有几种方法可以在sql端执行您想要的操作,也有几种方法可以在go端执行。
在sql方面,也许您可以
JOIN
在两个表上(或者如果使用外键或其他约束,只需SELECT
这个email
表)并对go中的数据进行排序。另一种选择是执行多个查询(也许是使用一个准备好的语句)。另一个选择是为每个人做一个新的查询,以便在结果集中只获得他们的电子邮件。