1

私と私のグループは、次の試験のテスト用紙を調べているときに、ある質問に行き詰まりました。

「同じ時間の結果のすべてのペアを含むテーブルを返す SQL クエリを作成します。テーブルには、各競技者の ID、2 つのイベント ID、および時間をリストする必要があります。」

次の表の場合:

compid eventid duration
1            1      150
1            2      167
1            3      133
2            2      145
2            3      182
3            3      179
3            1      179

私は次の行に沿って何かをしようとしていました:

SELECT r1.compid, r1.duration, r1.eventid, r2.eventid
FROM Results r1, (
    SELECT eventid
    FROM Results r2
    WHERE r1.eventid = r2.eventid AND r1.compid = r2.compid AND r1.duration = r2.duration
) r2;

しかし、ネストされたテーブル内から r1 テーブルを参照できないようです。

解決策の前提が何であるか、またはこの問題を回避する方法について誰かが指示を与えることができれば、それは素晴らしいことです.

4

2 に答える 2

1

回答を相関サブクエリとして表現し、結合条件サブクエリに入れています。

相関サブクエリは、節では許可されていませんfrom

ただし、これを適切な条件を備えた単純な自己結合と表現するのは簡単です。

特定のクエリを作成させていただきます。

ところで、event_idが同じであるというロジックがあります。おそらくこれは質問によって暗示されていますが、明示的には述べられていません。

于 2013-04-30T21:59:23.183 に答える
0

自分自身でテーブルに参加できるとは知りませんでした。しかし、その後はかなり簡単でした。乾杯。興味のある人のための解決策:

SELECT r1.compid, r1.eventid, r2.eventid, r1.duration
FROM Results r1, Results r2
WHERE r1.compid = r2.compid AND r1.duration = r2.duration AND r1.eventid != r2.eventid
GROUP BY r1.duration
于 2013-04-30T22:06:29.137 に答える