SQL-запрос - итерация на основе условия - PullRequest
0 голосов
/ 14 июня 2019

У меня есть таблица Стран.Я хочу написать запрос, чтобы запланировать совпадение между каждой страной, и никакое совпадение не должно повторяться. Я не хочу использовать для циклов.

Ответы [ 2 ]

4 голосов
/ 14 июня 2019

При самостоятельном перекрестном соединении:

select
  t1.name TeamA,
  t2.name TeamB
from tablename t1 cross join tablename t2
where t1.name < t2.name
order by t1.name, t2.name 

См. Демоверсию .Результаты:

| TeamA      | TeamB    |
| ---------- | -------- |
| Bangladesh | China    |
| Bangladesh | India    |
| Bangladesh | Japan    |
| Bangladesh | Pakistan |
| China      | India    |
| China      | Japan    |
| China      | Pakistan |
| India      | Japan    |
| India      | Pakistan |
| Japan      | Pakistan |
1 голос
/ 14 июня 2019

Вам нужно перекрестное соединение:

SELECT a.name, b.name FROM test a CROSS JOIN test b where a.name < b.name

Вот демо: https://www.db -fiddle.com / f / 8zBxQ3w7N5cmHBJ4PDDV6V / 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...