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
и попробуй это руками сгруппировать. поймешь сразу почему не получается
Vladislav
и попробуй это руками сгруппировать. поймешь сразу почему не получается
если 3 товара с 1-м общим parent_type_filter...то count(parent_type_filter) в havinge вернет как понимаю 3 а не 1...
The Ant
зависит от того, по чему группируешь. если по парент фильтру, то вернет три, т.к. товара три
The Ant
тогда надо будет считать товары, а не фильтры
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
при условии что названия фильтров ты не вытащишь в таблицу
есть 3 записи с разными "filter_id" => 2 но единым "parent_type_filter" => "1"
Vladislav
Потому что выбрал 1 группу со всеми чекбоксаими в ней
Vladislav
И все эти чекбоксы принадлежат 1 товару
Vladislav
Но фильтр же должен при выборе есх чекбоксов 1 группы
Vladislav
Отдать все тоары у которых хоть 1 параетр а не все вместе
The Ant
SELECT products.*, COUNT(filters.parent_filter)
The Ant
короче, таблица фильтров не должна создавать дубликаты таблицы продуктов
The Ant
я не в курсе че у тебя там ) откуда мне знать что возвращает или может вернуть.
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
SELECT products.*, COUNT(DISTINCT filters.parent_filter)
COUNT(DISTINCT filters.parent_type_filter) тем самым мы убьем все товары с одинаковым фильтром/парметром
Vladislav
Например все зеленые
The Ant
нет, ты выберешь уникальные фильтры для конкретного товара
The Ant
ты походу не понимаешь как мускул выбирает ))
Vladislav
грцппировки нет ещ как и хевинг
Vladislav
На данный момент я оставил только джоны с фильтрами и whereIn
Vladislav
никаких компаний ничего лишнего
The Ant
все верно, тебе же нужно выбрать товары по количеству фильтров, а не сами фильтры
Vladislav
все верно, тебе же нужно выбрать товары по количеству фильтров, а не сами фильтры
у меня 3 записи товара, а после коунт 1 товар, ghb 'njv 3 hfpys[ njdfhf ,skj
Vladislav
три разных товара
The Ant
а че в селекте?
The Ant
не может быть чтобы каунт самостоятельно сгруппировал разные товары )
The Ant
вот прям ну совсем
Vladislav
а че в селекте?
1 фильтр из 1 группы выбран
Vladislav
не может быть чтобы каунт самостоятельно сгруппировал разные товары )
а он и не группирует, он откидывает товары у которых одинаковые перент фильтр
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
ахахахаха
The Ant
запросто не тот что мы обсуждаем. ну пиздец короче
Vladislav
запросто не тот что мы обсуждаем. ну пиздец короче
сдесь только гроуп и хевинг отсутвует
Vladislav
и плейс я заметил что потерял
Vladislav
гроуп и хейвинг убрал когда каунт сатл черти что от черти что делать...
The Ant
и как оно считать будет, если групп отсутствует?