Всем привет.
Небольшая заминочка вышла..
делаю выборку из таблицы и получаю результат вида:
id | text | parent
1 | text | 2
2 | text | 2
3 | text | 3
и т.д, не суть, суть в том что parent у многих полей одинаковый, как объеденить выборку?
сделать так, чтобы parent не повторялся?
пробовал GROUP BY parent, но тут проблема встала с COUNT(*),
когда делаю COUNT(*) с GROUP BY,
то результат получается такой:
COUNT(*)
2
3
2
2
2
1
2
2
2
2
2
2
2
2
2
4
Подскажите пожалуйста, как сделать так, чтобы определенное поле не повторялось (объеденить поля), но в тоже время не ломать COUNT(*) ?
UPD:
Есть 3 таблицы:
Рецепты:
id | name | description
Компоненты рецептов:
id | parent_id | recept_id
где:
parent_id -> id компонента (отдельная таблица здесь не использую)
recept_id -> id рецепта, где этот компонент используется
Компоненты которыми обладает пользователь:
id | user_id | parent_id
где : user_id -> id пользователя чей компонент, parent_id -> id компонента (отдельная таблица здесь без неё)
Задача:
Имея только ID пользователя, найти все рецепты которые он может приготовить(исходя из его компонентов)
Делаю так:
SELECT r.*, cr.*, uc.*
FROM user_component AS uc
JOIN component_recept AS cr ON cr.parent_id = uc.parent_id
JOIN recept AS r ON r.id = cr.recept_id
WHERE uc.user_id
IN ( 9 )
И все хорошо, но только проблема в том, что в результате много "одинаковых" ячеек...
как объеденить выборку, чтобы небыло одинаковых id рецепта?
Пробовал GROUP BY, но результаты и проблема чуть выше, спасибо