I have a table for assignments, a table for solutions, and a table for students. I want to retrieve all assignments, and for each assignment I want to add a "flag" that shows if the currently logged in student has attempted the assignment.
I tried this:
import ( "fmt" "gorm.io/gorm" "encoding/json" "github.com/my_organisation/myorg-repo/db" ) var database *gorm.DB var solutions[]db.Solution var listOfAsnmtIDs []uint func myfuncn (w http.ResponseWriter, r *http.Request){ //... _ = database.Table("solutions").Where("pupil_id = ?", pupil.ID).Select("assignment_id").Find(&solutions) for _, solution := range solutions { listOfAsnmtIDs = append(listOfAsnmtIDs, solution.AssignmentID) } response := database.Table("assignments").Select(`id, created_at, IIF((id IN ?), 'attempted', 'Not attempted') as attempted`, listOfAsnmtIDs).Find(&allAssignments) if response.RowsAffected < 1 { respondToClient(w, 404, nil, "No assignments found") return } //... }
You only need to list the parameters. Similar to this