· 8 years ago · Jun 10, 2018, 05:44 PM
1DROP TABLE IF EXISTS AmizadeTransitiva;
2CREATE TABLE AmizadeTransitiva (
3 ID1 int REFERENCES Estudante(ID),
4 ID2 int REFERENCES Estudante(ID),
5 PRIMARY KEY (ID1, ID2)
6);
7
8INSERT INTO AmizadeTransitiva
9 SELECT DISTINCT A1.ID1, A2.ID2
10 FROM Amizade A1, Amizade A2
11 WHERE A1.ID2 = A2.ID1
12 AND A1.ID1 <> A2.ID2 -- AutoAmizades
13 AND A2.ID2 NOT IN (
14 SELECT A3.ID2 FROM Amizade A3 WHERE A3.ID1 = A1.ID1
15 ) -- Amizades existentes em Amizade
16 ORDER BY A1.ID1, A2.ID2;
17
18SELECT * FROM AmizadeTransitiva;