3

我有一个instructors包含以下结构/数据的表:

-----------------
|id  | name     |
-----------------
|1   | saad     |
|2   | imran    |
-----------------

我想在不返回重复结果的情况下对同一个表进行连接。

如果我做一个简单的连接,查询返回 4 rows [saad, saad], [saad, imran], [imran, imran], [imran, saad]

如果我添加一个 where 子句,它会返回 2 rows [saad, imran], [imran, saad]

但是,我只想返回 1 行,(即如果[saad, imran]已经返回,则查询不应该返回[imran, saad])。

到目前为止,这是我的查询:

SELECT DISTINCT
    i1.name AS name1,
    i2.name AS name2
FROM 
    instructors i1, instructors i2
WHERE
    i1.name != i2.name
ORDER BY
    name1, name2
4

2 回答 2

6

试试这个:

SELECT DISTINCT
   i1.name AS name1,
   i2.name AS name2
FROM 
   instructors i1, instructors i2
WHERE
   i1.id < i2.id
ORDER BY
   name1, name2
于 2013-03-15T17:47:35.337 回答
3

尝试:

SELECT DISTINCT
    i1.name AS name1,
    i2.name AS name2
FROM 
    instructors i1, instructors i2
WHERE
    i1.name > i2.name
ORDER BY
    name1, name2
于 2013-03-15T17:47:04.373 回答