3

instructors次の構造/データを含むテーブルがあります。

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

重複した結果を返すことなく、同じテーブルと結合したいと考えています。

単純な結合を行うと、クエリは 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
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 に答える