type SudentsMarks struct {
Student_code int `db:"student_code"`
Subjectname string `db:"subjectname"`
Marks int `db:"marks"`
}
type Students struct {
Student_code int db:"student_code"
Batch_division string db:"batch_division"
Rollno int db:"rollno"
Name string db:"fullname"
Marks []SudentsMarks
}
var err error
var _students = []Students{}
var _studentsMarks = []SudentsMarks{}
studentquery := select * from students
marksquery := select * from marks
err = Mydb.Select(&studentquery, studentquery)
if err != nil {
return err
}
err = Mydb.Select(&_studentsMarks, marksquery)
if err != nil {
return err
}
now we want to embed marks inside students , because in my student structure marks is array.
we are using linear search
for nstudentloop, student := range _students {
for _, marksloop := range _studentsMarks {
if marksloop.student_code == student.student_code {
_marks := SudentsMarks{}
_marks.Marks = marksloop.Marks
_marks.student_code = marksloop.student_code
_marks.subjectname = marksloop.subjectname
_students[nstudentloop].Marks = append(_students[nstudentloop].Marks, _marks)
} else {
break
}
}
}
This code is working but according to me there may be better way to solve this issues.
The marks loop run multiple time .