我正在尝试从表中检索一组唯一的类别/子类别关系,我想确保我做得对,这样我就可以获得所有数据。
例如我想要以下..
Animals -> Dogs
Animals -> Cats
Animals -> Reptiles
Cars -> Ford
Cars -> Toyota
Cars -> BMW
我不希望列出任何重复的子类别,但如果它们属于另一个类别,则需要重复的类别,例如..
Animals -> Dogs
Animals -> Cats
Animals -> Reptiles
Animals -> *General*
Cars -> Ford
Cars -> Toyota
Cars -> BMW
Cars -> *General*
我有以下代码,似乎运行良好,但只想检查这是否是正确的方法。
SELECT DISTINCT(category),subcategory FROM aall ORDER BY category ASC, subcategory ASC;
答案 0 :(得分:1)
是的,这将返回category, subcategory
的明确列表但是,您需要知道一件重要的事情:
DISTINCT不是一个功能! DISTINCT(category)
并不像在语法中看到的那样在一列上做出明显的分析。写这个的正确方法是:
SELECT DISTINCT category ,subcategory ...;
DISTINCT是一个修饰符,适用于所有您选择的列。你不能说有些应该是独特的,而不是其他的。
答案 1 :(得分:0)
SELECT `category`, `subcategory`
FROM `aall`
GROUP BY `category`, `subcategory`
ORDER BY `category`, `subcategory`