Vladislav
1 компания публикует много обьявлений
The Ant
блять
The Ant
ты пойми суть
The Ant
пример АБСТРАКТНЫЙ
The Ant
итак
The Ant
ты группируешь по ид
The Ant
по единичке
The Ant
но у тебя две строчки уникальных из-за названия компании
The Ant
как мускул это будет делать?
The Ant
в строгом режиме он тебе просто выдаст ошибку. а в том что у тебя сейчас предположит что ты хотел последний выбрать
The Ant
понял почему формируются уникальные строчки когда ты звезду втыкаешь?
The Ant
у тебя по сути там ахулиард уникальных значений и как понять что там ломается и ебется... для меня лично загадка
Vladislav
понял почему формируются уникальные строчки когда ты звезду втыкаешь?
продукты 15 полей, когда мы джоиним новые таблицы, часть полей перезаписывается, например name есть у компании и у продукта чтобы этого избежать, в селекте есть после звездочки, products.name as name, companies.name as company_name. , тоже самое и с id , и далее в спорных связях можно указывать алиасы
The Ant
ну, часть перезаписывается. а остальные нет
The Ant
кто знает что у тебя там есть вообще. как выход. Делаешь подзапрос на выборку товаров по критериями фильтра и потом к этому резульату джойнишь остальное
The Ant
и за звезду надо пиздить ногами
Vladislav
The Ant
просто дампни результат
The Ant
какой там массив получается в 1 строке
The Ant
и попробуй это руками сгруппировать. поймешь сразу почему не получается
The Ant
зависит от того, по чему группируешь. если по парент фильтру, то вернет три, т.к. товара три
The Ant
тогда надо будет считать товары, а не фильтры
Vladislav
The Ant
по ид товара подсчет будет только фильтров у конкретного товара
Vladislav
по ид товара подсчет будет только фильтров у конкретного товара
"id" => 235
"name" => "Almonds Ground Blanched"
"text" => "<p>massa quis augue luctus tincidunt nulla mollis molestie lorem quisque ut erat curabitur gravida nisi at nibh</p>"
"img" => "http://dummyimage.com/683x459.png/dddddd/000000"
"multi_img" => "[]"
"price" => "33893"
"count" => "65483"
"units" => "657"
"units_type" => "2"
"published" => 1
"company_id" => "281"
"created_at" => "2017-07-18 17:44:04"
"updated_at" => "2017-07-18 17:44:04"
"url" => "almonds_ground_blanched"
"place" => "38"
"catalog_id" => 235
"filter_id" => 2
"parent_type_filter" => "1"
The Ant
при условии что названия фильтров ты не вытащишь в таблицу
Vladislav
"filter_id" => 2
"parent_type_filter" => "1"
Vladislav
Потому что выбрал 1 группу со всеми чекбоксаими в ней
Vladislav
И все эти чекбоксы принадлежат 1 товару
Vladislav
Но фильтр же должен при выборе есх чекбоксов 1 группы
Vladislav
Отдать все тоары у которых хоть 1 параетр а не все вместе
The Ant
Vladislav
The Ant
SELECT products.*, COUNT(filters.parent_filter)
The Ant
короче, таблица фильтров не должна создавать дубликаты таблицы продуктов
Vladislav
The Ant
я не в курсе че у тебя там ) откуда мне знать что возвращает или может вернуть.
Vladislav
The Ant
возможно иды фильтров задают уникальность списку фильтров
The Ant
SELECT products.*, COUNT(DISTINCT filters.parent_filter)
The Ant
выбрать только уникальные значения типов фильтров
Vladislav
3 таблицы продукты прод_фильтры фильтры
Vladislav
далее
Vladislav
я их джойню
Vladislav
далее
Vladislav
->whereIn('catalog_filters.filter_id',$request->filters)
->whereIn('filters.parent_type_filter',$typeFilter)
Vladislav
я осталяю записи у которых фильтры совподают с любым выбранным
Vladislav
и группы совпадают с выбранными
Vladislav
Мне вот просто интересно, ед вариант что я находил еще в интернете, написать генератор sql строки запроса
Vladislav
с кучей join если будет много групп на выбрано...
Vladislav
Например все зеленые
The Ant
нет, ты выберешь уникальные фильтры для конкретного товара
The Ant
ты походу не понимаешь как мускул выбирает ))
Vladislav
Vladislav
грцппировки нет ещ как и хевинг
Vladislav
На данный момент я оставил только джоны с фильтрами и whereIn
Vladislav
никаких компаний ничего лишнего
The Ant
все верно, тебе же нужно выбрать товары по количеству фильтров, а не сами фильтры
Vladislav
три разных товара
The Ant
а че в селекте?
The Ant
не может быть чтобы каунт самостоятельно сгруппировал разные товары )
The Ant
вот прям ну совсем
The Ant
ничего он не откидывает. он считает уникальные типы фильтров
The Ant
не больше и не меньше
Vladislav
select products.*, parent_type_filter, filters.id as id_filter from products left join catalog_filters on catalog_filters.catalog_id = products.id left join filters on catalog_filters.filter_id = filters.id where products.place in (34, 35, 36, 39, 38, 37) and catalog_filters.filter_id in (2) and filters.parent_type_filter in (1)order by products.name asc
The Ant
давай запрос
The Ant
ахахахаха
Vladislav
The Ant
запросто не тот что мы обсуждаем. ну пиздец короче
Vladislav
Vladislav
и плейс я заметил что потерял
Vladislav
гроуп и хейвинг убрал когда каунт сатл черти что от черти что делать...
The Ant
и как оно считать будет, если групп отсутствует?
Vladislav