func (pub *Publication) getProps(sess *dbr.Session, id string) ([]*pubProp, error) { var props []*pubProp _, err := sess.Select( "pubprop.value", "cvterm.name as term", ).From("pubprop"). Join("pub", dbr.Eq("pubprop.pub_id", "pub.pub_id")). Join("cvterm", dbr.Eq("pubprop.type_id", "cvterm.type_id")). Join("cv", dbr.Eq("cvterm.cv_id", "cv.cv_id")). Where( dbr.And( dbr.Eq("pub.uniquename", id), dbr.Eq("pub.is_obsolete", "0"), dbr.Eq("cv.name", "pub_type"), ), ).LoadStructs(&props) return props, err }