0

リレーション/テーブルがあり、各 ID を互いにまとめて (選択) しようとしていますが、ID がペアで 2 回ある場合や、既に逆の順序で存在するペア (つまり、ペア [1 ,2] とペア [2,1] は同じです) ID が 2 回繰り返されるペア ([1,1]、[2,2]、[3,3] など) のみを削除できます。そうすることによって:

SELECT a.id first, b.id second
FROM myrelation a, myrelation b
WHERE a.id != b.id;

私はこれから行きました:

    |ID|attr1|attr2|...
    |1 |value|value|...
    |2 |value|value|...
    |3 |value|value|...

これに:

    |first|second|
    |  1  |   2  |
    |  1  |   3  |
    |  2  |   1  |
    |  2  |   3  |
    |  3  |   1  |
    |  3  |   2  |

私が実際にこれをしたいとき:

    |first|second|
    |  1  |   2  |
    |  1  |   3  |
    |  2  |   3  |

誰か助けてください!! ありがとうございました

4

1 に答える 1

1

非常に単純で、組み合わせテーブルの対角線を取ります(@RamblinManが言ったように):

SELECT a.id first, b.id second
FROM myrelation a, myrelation b
WHERE a.id < b.id;
于 2013-10-01T07:05:13.537 に答える