golang 中的 sqlx - 是否可以映射联接表?

sqlx in golang - Is it possible to map joined tables?

如何在连接表的情况下使用 sqlx struct scan?

例如,假设 Person 有很多 Post,我想获得一个结构,其中将一个人的帖子作为一个切片嵌入其中。

我正在想象这样一个 DTO:

type Person struct {
    Id        string    `json:"id"`
    Name      string    `json:"name"`       
    Posts     []*Post   `json:"posts"`  
}

type Post struct {
    Id        string `json:"post_id"`
}

我想使用的SQL是

SELECT 
    psn.id,
    psn.name,
    pst.id AS post_id
FROM
    person psn
JOIN posts pst ON pst.person_id = psn.id

这在 sqlx 中可以实现吗?怎么样?

Is this accomplishable in sqlx? How?

这不是 sqlx 的特性,它不是 ORM。它只是一个方便的包装器,除其他外,它使选择行到平面结构中变得更加容易。

您要么需要自己处理每个用户的多行,要么进行两次查询,首先针对该人,然后针对他们的帖子。