我很难将返回的行与一对多关系映射到Go中的嵌套结构。
结构看起来像:
type Result struct {
ID string `db:"id" json:"id"`
Title string `db:"title" json:"title"`
Content string `db:"content" json:"content"`
TableA []TableA `json:"tablea"`
}
type TableA struct {
foo string `db:"foo" json:"foo"`
bar string `db:"bar" json:"bar"`
TableAId string `db:"tablea_id" json:"tablea_id"`
}
相应的表格:
CREATE TABLE tablea (
id INT (10) UNSIGNED PRIMARY KEY AUTO_INCREMENT,
title VARCHAR (20) NOT NULL,
content VARCHAR (55) NOT NULL
);
CREATE TABLE tableb (
id INT (10) PRIMARY KEY AUTO_INCREMENT,
foo VARCHAR (255) NOT NULL,
bar VARCHAR (255) NOT NULL,
tablea_id INT (10) UNSIGNED,
INDEX par_ind (tablea_id),
FOREIGN KEY (tablea_id) REFERENCES tablea(id) ON DELETE CASCADE
);
我无法弄清楚如何映射
行SELECT
tablea.id, tablea.title, tablea.content,
tableb.foo, tableb.bar
FROM gowebapp.tablea
LEFT OUTER JOIN gowebapp.tableb On tableb.tablea_id = tablea.id;
带回程
+----+-------+---------+------+------+
| id | title | content | foo | bar |
+----+-------+---------+------+------+
| 1 | lorem | ipsum | foo1 | bar1 |
| 1 | lorem | ipsum | foo2 | bar2 |
| 1 | lorem | ipsum | foo3 | bar3 |
+----+-------+---------+------+------+
到我的Result结构。我是Go的新手,并试图让上面的示例尽可能通用,因为我还没有找到任何有关如何执行此操作的资源。
非常感谢任何帮助。