2

我有下表:

create table cric_country
(
id int,
country varchar (20)
)
insert into cric_country values
(1,'Ind'),(2,'Aus'),(3,'NZ')

我需要为我需要 2 个国家/地区列的国家/地区获取比赛装置,并且应该省略相同的国家/地区和重复匹配:我编写了以下查询:

select
t1.country,t2.country
from cric_country t1
inner join
cric_country t2
on t1.country <> t2.country

但它没有解决目的,因为我有 Aus/Ind 以及 Ind/Aus,需要省略一个但不能做一个不同的。

4

2 回答 2

2
SELECT a.country country1, b.country country2
FROM   cric_country a
       CROSS JOIN cric_country b
WHERE  a.country < b.country
ORDER  BY a.country, b.country

输出

╔══════════╦══════════╗
║ COUNTRY1 ║ COUNTRY2 ║
╠══════════╬══════════╣
║ Aus      ║ Ind      ║
║ Aus      ║ NZ       ║
║ Ind      ║ NZ       ║
╚══════════╩══════════╝
于 2013-09-16T08:30:10.593 回答
1

这很简单:

SELECT t1.country c1, t2.country c2
  FROM cric_country t1 JOIN cric_country t2 ON t1.id > t2.id;
于 2013-09-16T08:43:35.783 回答