3

こんにちは、同じ列の 2 つのインスタンスの一意の組み合わせが必要なため、この問題について困惑しています。

列 Name を持つ表 Animal があるとします。動物名のすべての「一意の」組み合わせが必要であり、それ自体または別の既存の行の繰り返しではありません。

サンプルデータ:

Name
-------
Mouse
Cat
Dog

私が望む結果は次のとおりです。

Name1   Name2
-----   -----
Mouse   Cat
Mouse   Dog
Cat     Dog

次のクエリを書きました。

SELECT DISTINCT A1.name AS Name1, A2.name as Name2
FROM Animal A1, Animal A2
WHERE A1.name <> A2.name;

代わりに、次の結果が得られました。

Name1  Name2
-----  -----
Mouse  Cat
Mouse  Dog
Cat    Mouse
Cat    Dog
Dog    Mouse
Dog    Cat

私が理にかなっていることを願っています。左側または右側に表示されるかどうかにかかわらず、両方の組み合わせの複製は必要ありません。「個別」に関する限り、行は個別です。では、ダブルアップをなくす方法はありますか?

4

1 に答える 1

8

ユニークな組み合わせを見つけるには、次のように変更<><ます。

WHERE A1.name < A2.name;
             ^^^
于 2013-05-01T06:48:44.160 に答える