mysql加入同一张表,没有重复

Saa*_*an. 2 mysql join self-join

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

-----------------
|id  | name     |
-----------------
|1   | saad     |
|2   | imran    |
-----------------
Run Code Online (Sandbox Code Playgroud)

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

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

如果我添加一个 where 子句,它会返回 2 行[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
Run Code Online (Sandbox Code Playgroud)

nic*_*are 5

尝试这个:

SELECT DISTINCT
   i1.name AS name1,
   i2.name AS name2
FROM 
   instructors i1, instructors i2
WHERE
   i1.id < i2.id
ORDER BY
   name1, name2
Run Code Online (Sandbox Code Playgroud)