0

Here's my code. The database name is socapa.

class Student extends Model
{
...
public static function rsStuds( 
        $varSession_rsStuds,
        $varCampus_rsStuds,
        $varProgram_rsStuds,
        $varSeason_rsStuds,
        $startRow_rsStuds,
        $maxRows_rsStuds) {
        return Student::select(
                    'contacts.FirstName',
                    'contacts.LastName',
                    'contacts.ContactID',
                    'students.StudentID',
                    'registrations.CourseID',
                    'registrations.RegDate', 
                    'contacts.City',
                    'contacts.State', 
                    'contacts.Country', 
                    'campuses.CampusName', 
                    'programs.ProgramName', 
                    'courses.SessionID', 
                    'courses.CourseName', 
                    'courses.Season', 
                    'students.StudentID',
                    'programs.ProgramID', 
                    'sessions.SessionID',
                    'sessions.SessionName',
                    'programs.ProgramName')
                ->join('registrations', 'students.StudentID', '=', 'registrations.StudentID')
                ->join('contacts', 'contacts.ContactID', '=', 'students.StudentContactID')
                ->join('courses', 'courses.CourseID','=', 'registrations.CourseID')
                ->join('campuses', 'campuses.CampusID', '=', 'courses.CampusID')
                ->join('programs', 'programs.ProgramID', '=', 'courses.ProgramID')
                ->join('sessions', 'sessions.SessionID', '=', 'courses.SessionID')
                ->where('courses.SessionID', 'LIKE', "%".$varSession_rsStuds."%")
                ->where('courses.CampusID', 'LIKE', "%".$varCampus_rsStuds."%")
                ->where('courses.ProgramID', 'LIKE', "%".$varProgram_rsStuds."%")
                ->where('courses.Season', '=', ''.$varSeason_rsStuds)
                ->groupBy('courses.ProgramID')
                ->orderBy('contacts.LastName')
                ->skip(''.$startRow_rsStuds)
                ->take(''.$maxRows_rsStuds)->get();
    }
...
}

When I run the project, the error following bellow, appears.

Illuminate\Database\QueryException SQLSTATE[42000]: Syntax error or access violation: 1055 'socapa.contacts.FirstName' isn't in GROUP BY (SQL: select contacts.FirstName, contacts.LastName, contacts.ContactID, students.StudentID, registrations.CourseID, registrations.RegDate, contacts.City, contacts.State, contacts.Country, campuses.CampusName, programs.ProgramName, courses.SessionID, courses.CourseName, courses.Season, students.StudentID, programs.ProgramID, sessions.SessionID, sessions.SessionName, programs.ProgramName from students inner join registrations on students.StudentID = registrations.StudentID inner join contacts on contacts.ContactID = students.StudentContactID inner join courses on courses.CourseID = registrations.CourseID inner join campuses on campuses.CampusID = courses.CampusID inner join programs on programs.ProgramID = courses.ProgramID inner join sessions on sessions.SessionID = courses.SessionID where courses.SessionID LIKE %1% and courses.CampusID LIKE %1% and courses.ProgramID LIKE %1% and courses.Season = -1 group by courses.ProgramID order by contacts.LastName asc limit 50 offset 0)

matiaslauriti
  • 7,065
  • 4
  • 31
  • 43
Tom Rid
  • 3
  • 2
  • That's because of [sql_mode=only_full_group_by](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_only_full_group_by) setting.. non-aggregated columns should all be listed in the `GROUP BY`. Here, [refer this](https://stackoverflow.com/questions/34115174/error-related-to-only-full-group-by-when-executing-a-query-in-mysql) – FanoFN Jun 12 '21 at 03:20
  • Why are you using a huge DB query instead of Eloquent relations ? – matiaslauriti Jun 12 '21 at 04:12

1 Answers1

0

Go to the config folder and open database.php find mysql and change

'strict' => false,
lemon
  • 14,875
  • 6
  • 18
  • 38