Как избежать дублирования в запросе JOIN PHP PDO? - PullRequest
0 голосов
/ 17 января 2019

У меня есть 2 таблицы с именами cat и sub_cat. У каждого sub_cat есть по крайней мере один или более чем один cat. Я попытался получить оба, используя ЛЕВЫЕ Соединения, но получая дубликаты кота.

Я пробовал предложение "GROUP BY", но получал только одну sub_cat против cat Я также попробовал "DISTINCT", но не получил точный результат

SELECT DISTINCT c.id AS cat_id, c.title AS cat_title, s.id, s.title,s.cat_name FROM cat c LEFT JOIN sub_cat s ON c.id = s.cat_name

Использование группы

SELECT c.id AS cat_id, c.title AS cat_title, s.id, s.title,s.cat_name FROM cat c LEFT JOIN sub_cat s ON c.id = s.cat_name GROUP BY c.id

Я ожидаю только одного кота и нескольких sub_cats, но получаю несколько котов против нескольких sub_cat

1012 * Отредактировано *

Как показано на рисунке, я хочу, чтобы все кошки, когда пользователь нажимал на любую из них, я мог получить все связанные sub_cats Ожидаемый результат

1 Ответ

0 голосов
/ 17 января 2019

Вам поможет следующий запрос.

SELECT c.id AS cat_id, c.title AS cat_title, group_concat(s.cat_name)sub_cat_name 
FROM cat c INNER JOIN sub_cat s 
ON c.id = s.cat_name 
GROUP BY c.id
...