что такое запрос sql для комбинации - PullRequest
0 голосов
/ 29 апреля 2020

У меня недавно было итервью. Мне задали сложный sql вопрос. Я не смог ответить.

В: В футбольном матче 8 команд.

case1: Каждая команда должна играть друг с другом, но только один раз.

Случай 2: Каждая команда должна сыграть с другой командой дважды.

Не могли бы вы сказать мне запрос SQl для обоих случаев?

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Для первого запроса вы можете сделать:

select a.*, b.*
from team a
join team b on a.id < b.id

Для второго запроса вы можете сделать:

select a.*, b.*
from team a
join team b on a.id <> b.id
1 голос
/ 29 апреля 2020

Предполагая, что у вас есть таблица с именем teams со столбцами id и name, вы можете самостоятельно присоединиться к таблице.

Q2 касается генерации всех комбинаций команд - за исключением того, что команда не может играть против себя:

select t1.name, t2.name
from teams t1
inner join teams t2 on t1.id <> t2.id

Для Q1 вы можете использовать условие неравенства, поэтому каждый кортеж появляется только один раз:

select t1.name, t2.name
from teams t1
inner join teams t2 on t1.id < t2.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...