组合的 sql 查询是什么
what is the sql query for combination
我最近有一个 iterview。我被问到一个复杂的 sql 问题。我无法回答。
问:足球比赛有8支球队。
case1:每支球队都必须互相比赛,但只有一次。
案例2:每支球队与另一支球队比赛两次。
你能告诉我这两种情况的 SQl 查询吗?
假设您有一个名为 teams
的 table,包含列 id
和 name
,您可以自行加入 table。
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
对于第一个查询,您可以执行以下操作:
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
我最近有一个 iterview。我被问到一个复杂的 sql 问题。我无法回答。
问:足球比赛有8支球队。
case1:每支球队都必须互相比赛,但只有一次。
案例2:每支球队与另一支球队比赛两次。
你能告诉我这两种情况的 SQl 查询吗?
假设您有一个名为 teams
的 table,包含列 id
和 name
,您可以自行加入 table。
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
对于第一个查询,您可以执行以下操作:
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