Code: Select all
CREATE TABLE Fair(
Title varchar(100),
Year int,
PRIMARY KEY(Titolo, Anno),
);
CREATE TABLE Animal(
ID int PRIMARY KEY,
Species varchar(100),
Name varchar(100),
);
CREATE TABLE Participation(
Fair_Title varchar(100),
Fair_Year int,
Animal_ID int,
FOREIGN KEY(Fair_Title, Fair_Year) references Fair(Title, Year),
FOREIGN KEY(Animal_ID) references Animale(ID),
PRIMARY KEY(Fair_Title, Fair_Year, Animal_ID)
);
Derzeit versuche ich das so zu machen:
Code: Select all
SELECT DISTINCT A.Name as Animal_Name
FROM animal A JOIN participation P ON (A.ID = P.Animal_ID)
WHERE (P.Fair_Year = 2023) AND
NOT EXISTS (
SELECT F.Title FROM fair F
WHERE F.Title NOT IN(
SELECT P1.Fair_Title
FROM animal A1 JOIN participation P1 ON (A1.ID = P1.ID)
WHERE (A1.ID = A.ID AND P1.Fair_Year = 2023)
)
);
PROBENDATEN:
MESSEN
Titel
Jahr
Messe 1
2023),
Messe 2< /td>
2023),
Messe 3
< td>2022),
Messe 4
2022);
Tiere
ID
Art
Name
< tr>
0
Schwein
Schwein
1
Ziege
Lucy
2
KuhMaia
3
Katze
Melo
4
Hund
Dela
Teilnahme
Messetitel
Fair_Year
Animal_ID
< tr>
Messe 1
2023
3
Messe 2
2023
3
Messe 1
2023
4
Messe 2
2023
4
Messe 2
2023
2
Messe 1
2023
2
Messe 2
2022
1
Messe 1
2023
1
Messe 4
2022
1
Messe 4
2022
4
Messe 4
2022
0
Messe 1
2023
0
Erwartete Ergebnisse sind: Maia, Melo und Dela, seitdem sind die Tiere, die an beiden Messen 2023 teilgenommen haben