mailru / dbr

Additions to Go's database/sql for super fast performance and convenience. (fork of gocraft/dbr)
MIT License
178 stars 36 forks source link

structs one-to-many relation #26

Open lycifer3 opened 4 years ago

lycifer3 commented 4 years ago

is it possible to create structures one to many db: clickhouse 20.3.5.21

example:

type DomainType struct {
    Id        string      `json:"id"`
    Domain    string      `json:"domain"`
    Date      time.Time   `json:"date"`
    Redirects []*Redirect `json:"redirects"`
}

type Redirect struct {
    Id             sql.NullString `json:"id"`
    RedirectDomain sql.NullString `json:"redirect_domain" db:"redirect_domain"`
    Date           sql.NullTime   `json:"redirect_date" db:"date"`
}

end query:

var result []entity.DomainType
query := sess.Select("*").From("domain").LeftJoin("domain_redirect", "domain.id = domain_redirect.id")

query.LoadStructs(&result)

if this is possible then tell me how, I'm begginer to the golang

DoubleDi commented 4 years ago

Hi! When you join like that, You will be having rows for a struct like this

type DomainType struct {
    Id        string      `json:"id"`
    Domain    string      `json:"domain"`
    Date      time.Time   `json:"date"`
    RedirectDomain sql.NullString `json:"redirect_domain" db:"redirect_domain"`
    Date           sql.NullTime  `json:"redirect_date" db:"date"`
}
lycifer3 commented 4 years ago

I understand that, the question is to get a one-to-many structure