Size: a a a

Laravel для начинающих

2020 April 21

EG

Egor Gruzdev in Laravel для начинающих
Дмитрий
Та связи это вопрос десятый.
->with("clients")
просто указал максимум инфы.
связь на основе чего строиться, на основе hash? т.е. в таблице clients также лежит hash?
источник

Д

Дмитрий in Laravel для начинающих
Egor Gruzdev
связь на основе чего строиться, на основе hash? т.е. в таблице clients также лежит hash?
нет, в таблице clients есть после visitor_id
А таблица с посещениями это таблица visitors
источник

EG

Egor Gruzdev in Laravel для начинающих
вот я и прошу выведи схематику таблиц, т.к. что откуда весьма не понятно
источник

Д

Дмитрий in Laravel для начинающих
Egor Gruzdev
вот я и прошу выведи схематику таблиц, т.к. что откуда весьма не понятно
Ок, давайте без связанной таблицы.
Мне нужно получить все записи в таблице visitors где поле hash уникальный. А там где один и тот же хэш вернуть первую строчку
источник

EG

Egor Gruzdev in Laravel для начинающих
Visitors::query()->groupBy('hash')->get();
источник

Д

Дмитрий in Laravel для начинающих
Egor Gruzdev
Visitors::query()->groupBy('hash')->get();
Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'mydb.visitors.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select * from visitors group by hash)
источник

D

DK in Laravel для начинающих
Дмитрий
Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'mydb.visitors.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select * from visitors group by hash)
ошибку не вкуриваешь?
источник

EG

Egor Gruzdev in Laravel для начинающих
Дмитрий
Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'mydb.visitors.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select * from visitors group by hash)
убирай из sql_mode "only_full_group_by"
источник

D

DK in Laravel для начинающих
Egor Gruzdev
убирай из sql_mode "only_full_group_by"
источник

Д

Дмитрий in Laravel для начинающих
DK
ошибку не вкуриваешь?
нет( не сталкивался никогда. В гугле много непонятной инфы, поэтому здесь и спросил
источник

EG

Egor Gruzdev in Laravel для начинающих
или перечисляй в какие значения тебе нужно вернуть вместо '*'
источник

D

DK in Laravel для начинающих
Дмитрий
нет( не сталкивался никогда. В гугле много непонятной инфы, поэтому здесь и спросил
ты группируешь по hash, но у тебя с одинаковым хэшем есть более 1 записи, какой визиторс id ему показать из этих двух в выборке?
источник

D

DK in Laravel для начинающих
вот база и ругается
источник

Д

Дмитрий in Laravel для начинающих
DK
ты группируешь по hash, но у тебя с одинаковым хэшем есть более 1 записи, какой визиторс id ему показать из этих двух в выборке?
Так почитайте первый пост который я писал. Я и говорю что нужно вернуть первый
источник

EG

Egor Gruzdev in Laravel для начинающих
DK
ты группируешь по hash, но у тебя с одинаковым хэшем есть более 1 записи, какой визиторс id ему показать из этих двух в выборке?
он ругается т.к. в select есть поля отличные от поля указанного в group by и образуется не одначначность на выдаче, т.е. какое занчение из группировки вренуть
источник

EG

Egor Gruzdev in Laravel для начинающих
источник

D

DK in Laravel для начинающих
Дмитрий
Так почитайте первый пост который я писал. Я и говорю что нужно вернуть первый
указать все поля кроме visitors.id в select?
источник

EG

Egor Gruzdev in Laravel для начинающих
DK
указать все поля кроме visitors.id в select?
все равно обматерит, т.к. ошибку бросает оптимизатор, а не когда запрос начал выборку из базы
источник

D

DK in Laravel для начинающих
источник

Д

Дмитрий in Laravel для начинающих
DK
указать все поля кроме visitors.id в select?
я так и делал
->get(["id","ua", "ip", "hash", "source", "medium", "campaign", DB::raw("created_at as date")])
источник