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)
尝试这个:
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)