0

このクエリがあり、最初の結果が表示されます。私の最終目標は、次のことを解決することです。

お互いが好きな生徒のペアごとに、両方の生徒の名前と成績を返します

以下は、私が作成した最初のクエリと、一致する ID のペアです。

select L1.ID1, L1. ID2
from Likes L1, Likes L2
where L1.ID1 = L2.ID2 and L2.ID1 = L1.ID2 and L1.ID1 > L1.ID2

私のクエリ結果:

1709 1689
1934 1501

私が抱えている問題は、これらの ID のそれぞれの名前とグレードを返すことです。ID は次の表にあります。

学生(ID、氏名、学年)

では、どうすれば次のようになりますか。

予想されるクエリ結果:

name1 grade1 name2 grade2
name1 grade1 name2 grade2

名前と学年は、最初のクエリの ID に基づいて、Students テーブルから取得されますか?

4

2 に答える 2

0

2人の生徒が参加するとうまくいくはずです

SELECT 
l1.ID1, l1.ID2
s1.name as name1, s1.grade as grade1, 
s2.name as name2, s2.grade as grade2
FROM Likes l1
INNER JOIN Likes l2 ON l1.ID1 = l2.ID2 and l2.ID1 = l1.ID2
INNER JOIN students s1 on s1.ID = l1.ID1
INNER JOIN students s2 on s2.ID = l1.ID2
WHERE l1.ID1 > l1.ID2
于 2013-01-28T08:24:29.447 に答える