将SQL行映射到Go中的嵌套结构/切片

时间:2017-03-14 09:31:02

标签: sql go

我很难将返回的行与一对多关系映射到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的新手,并试图让上面的示例尽可能通用,因为我还没有找到任何有关如何执行此操作的资源。

非常感谢任何帮助。

0 个答案:

没有答案