什么是组合的sql查询

问题描述 投票:0回答:2

我最近有一个iterview。我被问到一个复杂的sql问题。我无法回答。

问:足球比赛中有8支球队。

案例1:每支球队只能互相比赛,但只有一次。

案例2:每支球队必须与另一支球队比赛两次。

您能告诉我这两种情况的SQl查询吗?

sql join etl teradata
2个回答
1
投票

假设您有一个名为teams的表,其中有idname列,则可以自联接表。

第2季度将要产生团队的所有组合-除非团队不能与自己对抗:

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

1
投票

对于第一个查询,您可以做:

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
© www.soinside.com 2019 - 2024. All rights reserved.