Hallo.
Bin hier neu in dem Forum und sieht ja recht cool hier aus.
Habe mich heute Abend an die PRESIDENT-Datenbank von Oracle drangesetzt, um etwas SQL zu lernen.
Die Frage wo ich gerade Probleme habe ist:
Gebt alle in der Datenbank verfügbaren Informationen über
'Obama B H' aus.
Kurze Beschreibung von meiner Seite zur Erläuterung:
Es gibt drei Relationen: Pres_Hobby, President und Pres_Marriage
Der Fremdschlüssel, der Beziehung der drei Relationen wäre "Pres_Name", der den Attributswert als Selektionsbedingung 'Obama B H' haben soll.
Ich habe eine Lösung herausbekommen, die zwar ok wäre und bei Ersetzung des * durch alle nötigen SELECT Attribute auch das Korrekte ausgeben würde, aber ich würde das gerne vereinfachen bzw optimiert haben.
SELECT *
FROM PRES_Hobby H, President P, Pres_Marriage M
WHERE P.PRES_Name='Obama B H' AND H.PRES_Name='Obama B H' AND M.Pres_Name='Obama B H'
Ausgabe:
dabei könnte man das Sternchen wie gesagt durch die benötigten Attribute austauschen.
Frage: Kann man eventuell einen Durchschnitt oder eine EXCEPT Hinzufügung oder Ergänzung das Problem lösen, dass
3x PRES_Name Spalten in der Auswahl sind?
Also damit man * behält und sagt "ALLES außer zwei doppelte Pres_name-Spalten"?
Frage2: Da der Präsident drei Hobbys hat, kann man die Anzahl der Tupel nicht reduzieren und kriegt somit drei Tupel heraus?
D.h. Es ginge nur, wenn man Hobby aus der Selektion nehmen würde und seperat aufführen in einer eigenen Relation?
Danke für hoffentlich etwas Erleuchtung
Bin hier neu in dem Forum und sieht ja recht cool hier aus.
Habe mich heute Abend an die PRESIDENT-Datenbank von Oracle drangesetzt, um etwas SQL zu lernen.
Die Frage wo ich gerade Probleme habe ist:
Gebt alle in der Datenbank verfügbaren Informationen über
'Obama B H' aus.
Kurze Beschreibung von meiner Seite zur Erläuterung:
Es gibt drei Relationen: Pres_Hobby, President und Pres_Marriage
Der Fremdschlüssel, der Beziehung der drei Relationen wäre "Pres_Name", der den Attributswert als Selektionsbedingung 'Obama B H' haben soll.
Ich habe eine Lösung herausbekommen, die zwar ok wäre und bei Ersetzung des * durch alle nötigen SELECT Attribute auch das Korrekte ausgeben würde, aber ich würde das gerne vereinfachen bzw optimiert haben.
SELECT *
FROM PRES_Hobby H, President P, Pres_Marriage M
WHERE P.PRES_Name='Obama B H' AND H.PRES_Name='Obama B H' AND M.Pres_Name='Obama B H'
Ausgabe:
dabei könnte man das Sternchen wie gesagt durch die benötigten Attribute austauschen.
Frage: Kann man eventuell einen Durchschnitt oder eine EXCEPT Hinzufügung oder Ergänzung das Problem lösen, dass
3x PRES_Name Spalten in der Auswahl sind?
Also damit man * behält und sagt "ALLES außer zwei doppelte Pres_name-Spalten"?
Frage2: Da der Präsident drei Hobbys hat, kann man die Anzahl der Tupel nicht reduzieren und kriegt somit drei Tupel heraus?
D.h. Es ginge nur, wenn man Hobby aus der Selektion nehmen würde und seperat aufführen in einer eigenen Relation?
Danke für hoffentlich etwas Erleuchtung