package models import ( "database/sql" "time" ) type Operation struct { ID int Name string Description string Created time.Time OrganisationName string EngagementStrategies []EngagementStrategy } type OperationModel struct { DB *sql.DB } func (m *OperationModel) ListAll() ([]Operation, error) { stmt := `SELECT op.id, op.name, op.description, op.created, org.name FROM operations op INNER JOIN organisations org ON op.organisation_id=org.id` // stmt := `SELECT * FROM operations` rows, err := m.DB.Query(stmt) if err != nil { return nil, err } defer rows.Close() var ops []Operation for rows.Next() { var o Operation err = rows.Scan(&o.ID, &o.Name, &o.Description, &o.Created, &o.OrganisationName) if err != nil { return nil, err } ops = append(ops, o) } if err = rows.Err(); err != nil { return nil, err } return ops, err }