Komische Relation
-
Hi, ich krieg folgenden Sachverhalt weder in meine Accessdatenbank, noch könnte ich das SQL-Statement dazu schreiben. Kann mir da jemand auf die Sprünge helfen?
Gegeben sind die Relationenschemata:
Team (TeamNr, Nation, Teamchef, Kadergroesse)
Stadion (StadionNr, Name, Ort)
Spiel (Team1Nr, Team2Nr, Datum, StadionNr)a) Erstellen sie bitte einen Spielplan, welcher für jedes Spiel das Datum, die Nationalität der beiden Mannschaften und den Namen des Fußballstadions enthält. Der Spielplan soll die einzelnen Begegnungen in zeitlicher Reihenfolge wiedergeben. Formulieren Sie bitte für den Spielplan das entsprechende SQL-Statement. (2 Punkte)
b) Zeigen Sie bitte für die gegebenen Relationen auf, wie sich jeweils Primärschlüssel und Fremdschlüssel zusammensetzen. (2 Punkte)
-
EDIT: Ich hab's
CREATE TABLE team(team_nr INT PRIMARY KEY, nation CHAR(20), teamchef CHAR(20), kadergroesse INT); CREATE TABLE stadion(stadion_nr INT PRIMARY KEY, name CHAR(20), ort CHAR(20)); CREATE TABLE spiel(team1_nr INT REFERENCES team(team_nr), team2_nr INT REFERENCES team(team_nr), stadion_nr INT REFERENCES stadion(stadion_nr), datum DATE, PRIMARY KEY(team1_nr, team2_nr, stadion_nr)); INSERT INTO team VALUES(1, 'Deutschland', 'Klinsmann', 22); INSERT INTO team VALUES(2, 'Mexico', 'Carlos Santana', 17); INSERT INTO stadion VALUES(1, 'Allianz Arena', 'Muenchen'); INSERT INTO stadion VALUES(2, 'Schalke Arena', 'Schalke'); INSERT INTO spiel VALUES(1,2,1, '11.11.2004'); INSERT INTO spiel VALUES(2,1,2, '11.12.2005');
SELECT t1.nation, t2.nation, s.name, v.datum FROM team t1, team t2, stadion s, spiel v WHERE t1.team_nr = v.team1_nr AND t2.team_nr = v.team2_nr AND s.stadion_nr = v.stadion_nr ORDER BY v.datum ASC;
Ich hab's mit PostgreSQL ausprobiert. Ob das Ganze mit Access hinhaut
-
wieso muss man da nix JOINEN in der abfrage? das muss man doch sonst immer, oder bin ich da grad irgendwie falsch?
-
Du kannst die JOIN-Bedingung auch in die WHERE-Clause verschieben. Ist zwar nicht so "sauber", sollte aber bei einer "guten" DB gleich schnell sein
-
das is ja nen dreck.
in der uni haun die das auch einfach in die where klausel und ich wurde voll verwirrt, weil ich das nur mit JOINS kenne...
-
http://www.postgresql.org/docs/8.0/static/tutorial-join.html
Wie man die JOIN - Bedingung hinschreibt ist eher Geschmackssache.
Ich mag es nicht wenn ON in meiner SQL - Anweisung steht
-
Bei Tabelle "Spiel" noch "Datum" in den PK. Es können ja zwei Manschaften im gleichen Stadion zweimal aufeinander treffen (Vorunde/Finale etc.).