0

テーブルからカテゴリ/サブカテゴリの関係の一意のセットを取得しようとしていますが、すべてのデータを取得できるように、正しく実行されていることを確認したいと思います。

たとえば、私は以下が欲しいです。

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;
4

2 に答える 2

1

はい、それは明確なリストを返しますcategory, subcategory しかし、あなたが知る必要がある1つの重要なことがあります:

DISTINCTは関数ではありません!DISTINCT(category)構文からわかるように、1つの列で実際に区別を行っているわけではありません。それを書く正しい方法は次のとおりです。

SELECT DISTINCT category ,subcategory ...;

DISTINCTは、選択しているすべての列に適用される修飾子です。明確にすべきものもあれば、そうでないものもあるとは言えません。

于 2012-09-04T08:08:02.493 に答える
0
SELECT `category`, `subcategory` 
FROM `aall` 
GROUP BY `category`, `subcategory` 
ORDER BY `category`, `subcategory`
于 2012-09-04T08:16:41.373 に答える