@ne-programmist

Почему не работает distinct в query builder?

Подскажите, почему не работает distinct в query builder? Нужно достать записи с уникальным значением categories.name

Есть такой запрос:
$subCategories = DB::table('categories')
            ->select(
                'categories.parent_category_id',
                'categories.name',
                'categories.has_subcategories',
                'user_categories.user_id'
            )
            ->leftJoin('user_categories', 'categories.id', '=', 'user_categories.category_id')
            ->where('parent_category_id', $id)
            ->distinct()
            ->get()
            ->toArray();


Результат:
"subCategories": [
            {
                "parent_category_id": 1,
                "name": "Mac",
                "has_subcategories": 0,
                "user_id": 148
            },
            {
                "parent_category_id": 1,
                "name": "Mac",
                "has_subcategories": 0,
                "user_id": 149
            },
            {
                "parent_category_id": 1,
                "name": "Mac",
                "has_subcategories": 0,
                "user_id": 151
            }
        ]


А должно быть:
"subCategories": [
            {
                "parent_category_id": 1,
                "name": "Mac",
                "has_subcategories": 0,
                "user_id": 148
            }
        ]
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
Потому что distinct работает на комбинацию всех выбираемых полей, а тут user_id разный
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы