Laravel Query Builder: объединение таблиц и групп по идентификатору - PullRequest
0 голосов
/ 16 марта 2020

Что я хочу сделать, это присоединиться к следующим таблицам и сгруппировать их по идентификатору термина, но кажется, что в части запроса SELECT есть ошибка. Может кто-нибудь помочь мне исправить?

public function getSponsor()
{
    $sponsor = DB::table('sponsors')
        ->join('terms', 'terms.id', '=', 'sponsors.term_id')
        ->join('committees', 'committees.id', '=', 'terms.committee_id')
        ->join('persons', 'persons.id', '=', 'sponsors.person_id')
        ->select('sponsors.term_id as sponsor_term_id', 'terms.id as term_id', 'terms.term', 'persons.person_name', 'persons.id as person_id', 'committees.committee_name')
        ->groupBy('terms.id')
        ->get();

    return $sponsor;
}

Вот ошибка

SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1055 Выражение № 4 из списка SELECT отсутствует в Предложение GROUP BY и содержит неагрегированный столбец «cdorts.persons.person_name», который функционально не зависит от столбцов в предложении GROUP BY; это несовместимо с sql_mode = only_full_group_by (SQL: выберите sponsors. term_id как sponsor_term_id, terms. id как term_id, terms. term, persons. person_name, persons. id как person_id, committees. committee_name из sponsors внутреннее соединение terms в terms. id = sponsors. term_id внутреннее соединение committees на committees. id = terms. committee_id внутреннее объединение persons на persons. id = sponsors. person_id сгруппировать по terms. id)

...