如何避免 JOIN 查询中的重复 PHP PDO?
How to avoid duplication in JOIN query PHP PDO?
我有 2 个表,分别命名为 cat 和 sub_cat。每个 sub_cat 至少有一只或多只猫。我尝试使用 LEFT Joins 获取两者,但得到了 cat 的副本。
我试过 "GROUP BY" 条款,但只得到一个 sub_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_cat,但得到多只猫对抗多只 sub_cat
Edited
如图所示,我想要所有的猫,当用户点击它们时,我可以获得所有相关的 sub_cats
Expected Output
下面的查询会对您有所帮助。
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
我有 2 个表,分别命名为 cat 和 sub_cat。每个 sub_cat 至少有一只或多只猫。我尝试使用 LEFT Joins 获取两者,但得到了 cat 的副本。
我试过 "GROUP BY" 条款,但只得到一个 sub_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_cat,但得到多只猫对抗多只 sub_cat
Edited
如图所示,我想要所有的猫,当用户点击它们时,我可以获得所有相关的 sub_cats Expected Output
下面的查询会对您有所帮助。
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