У меня есть эта функция:
public function readData(){
$TableB1 = \DB::table('users')
->join('group_user', 'users.id', '=', 'group_user.user_id')
->join('groups', 'groups.id', '=', 'group_user.group_id')
->join('meetings', 'users.id', '=', 'meetings.owned_by_id')
->select(
'users.name as name',
'group_user.user_id as id',
'groups.name as groupname',
'meetings.owned_by_id as meetings'
)
->groupBy('users.id')
->get();
Я получаю эту ошибку:
Когда я удаляю часть groupBy, она работает, но такие повторяющиеся данные
он возвращает такие данные:
[{"name":"Mohamed Adel","id":6,"groupname":"Team Mohamed","meetings":6},{"name":"Mohamed Adel","id":6,"groupname":"Team Mohamed","meetings":6},{"name":"Norman Osborn","id":2,"groupname":"Team Mohamed","meetings":2},{"name":"Harry Osborn","id":3,"groupname":"Team Harry","meetings":3}]
Спасибо.
извините, я новичок, я не совсем понимаю. как это решить?
Возможный дубликат Как устранить ошибку «не находится в GROUP BY» в запросе mysql
В стандартном SQL вы должны либо назвать все выбранные поля в группе, либо использовать агрегатную функцию, такую как sum() или max() и т. д., в предложении select.






Использовать этот
public function readData()
{
$TableB1 = \DB::table('users')
->join('group_user', 'users.id', '=', 'group_user.user_id')
->join('groups', 'groups.id', '=', 'group_user.group_id')
->join('meetings', 'users.id', '=', 'meetings.owned_by_id')
->select(
'users.id as user_id',
'users.name as name',
'group_user.user_id as id',
'groups.name as groupname',
'meetings.owned_by_id as meetings'
)
->groupBy('user_id')
->get();
Измените config\database.php на
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false, // must be false
'engine' => null
],
Это нестандартная функция MySQL или это то, что эта структура делает для вас? Похоже, это поощряет изучение чего-то неправильного... (Я бы хотел сделать это в DB2)
Именно то, что вам сказала ошибка. Чтобы упростить, если он находится в выборе, он должен быть в группе.