1
저는 sqlx와 새로운 것을 알고 있습니다. 하나의 쿼리에서 master -> detail join 절을 strutscan 할 수 있는지 알고 싶습니다.sqlx structscan join query
type Episode struct {
EpisodeID int `db:"episode_id"`
PatientID int `db:"patient_id"`
Status string `db:"status"`
}
type Patient struct {
PatientID int `db:"patient_id"`
FirstName string `db:"first_name"`
MiddleName sql.NullString `db:"middle_name"`
LastName string `db:"last_name"`
Episodes []Episode
}
query := `SELECT
mr_patients.patient_id,
mr_patients.first_name,
mr_patients.middle_name,
mr_patients.last_name,
mr_episode_statuses.status,
mr_episodes.episode_id,
mr_episodes.created_at
FROM mr_patients
INNER JOIN mr_episodes ON mr_patients.patient_id = mr_episodes.patient_id
INNER JOIN mr_episode_statuses ON mr_episodes.status_id = mr_episode_statuses.status_id
ORDER BY mr_patients.patient_id, mr_episodes.episode_id`
rows, err := db.Queryx(query)
if err != nil {
log.Fatal(err)
}
var patients []Patient
for rows.Next() {
var p Patient
err = rows.StructScan(&p)
if err != nil {
log.Fatalln(err)
} else {
patients = append(patients, p)
}
}
감사 : 나는 모든 환자를 조회 할 각 환자 구조체에서이 같은
뭔가 에피소드의 배열을 포함하므로 환자는 많은 에피소드를 가지고있다.
다음을 살펴보십시오. https://github.com/jmoiron/sqlx/blob/master/sqlx_test.go#L470 – molivier
고맙습니다. @molivier, 제가 시도했지만, #mpm은 하나만 작동한다고 말합니다. 하나의 관계에. 에피소드 배열을 채우지 않습니다. – mattinsalto