Привет, я сильно обеспокоен этой проблемой, поскольку мне нужна уникальная комбинация из двух экземпляров одного и того же столбца.SQL уникальная комбинация из двух столбцов
Предположим, у меня есть таблица Animal with column Name. Я хочу все «уникальные» комбинации имени животного, а не повторять его сам или другой уже существующий ряд.
Образец данных:
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
Надеюсь, у меня есть смысл. Я не хочу дублировать обе комбинации, будь то слева или справа. Что касается «Distinct», то строки различны. Так есть ли способ устранить двойное?
Это считается плохим стилем кодирования использовать неявное соединение. В вашем случае вы ** делаете ** хотите декартовой продукт, но лучше сказать это, используя 'FROM Animal A1 cross join Animal A2' –