WinFuture-Forum.de: mysql Abfrage - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

mysql Abfrage


#1 Mitglied ist offline   Ot@con 

  • Gruppe: aktive Mitglieder
  • Beiträge: 160
  • Beigetreten: 07. September 09
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 02. Juni 2012 - 20:57

Liebe wf-gemeinde,

hab hier grad ein Problem mit einer mysql Abfrage. Ich habe eine Film-Datenbank. In dieser sind u.a. 2 Tabellen, einmal das Veröffentlichungsjahr, und einmal eine Tabelle wo der Titel drinnen steht. So, die Aufgabenstellung lautet nun wie folgt: "Wieviele Filme sind im Jahr 2008 erschienen und wie heißen sie?"

So, im Jahr 2008 sind 2 Filme erschienen, daher steht dann bei der ausgabe Anzahl=2, aber wie schaffe ich es das auch noch die Titel dieser 2 Filme mit ausgegeben werden, ich bekomm das einfach nicht hin. Hier mal mein aktuellster Lösungsvorschlag:

CREATE OR REPLACE VIEW zählen AS 
SELECT COUNT( V_Veroeffentlichung ) AS Anzahl 
FROM film.veroeffentlichungsjahr 
WHERE YEAR( V_Veroeffentlichung ) =2008; 
 
CREATE OR REPLACE VIEW Titel AS 
SELECT F_Titel AS Titel 
FROM film.veroeffentlichungsjahr LEFT JOIN film.filme ON V_F_ID = F_ID 
WHERE YEAR( V_Veroeffentlichung ) =2008; 
 
SELECT zählen.Anzahl, Titel.Titel 
From zählen left join Titel ON zählen.Anzahl=Titel.Titel



Das Problem hier ist das zwar die erstellte Tabelle "Anzahl" richtig die Zahl 2 ausgibt, allerdings dann in der Tabelle "Titel" Null ausgibt. Das passiert wahrscheinlich deshalb weils dann ja 2 zeilen wären zum ausgeben aber die Tabelle Anzahl ja nur eine Zeile hat. Ich hoffe es ist verständlich wo mein Problem liegt.

lg
Never change a running system!
0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 04. Juni 2012 - 13:18

Ich würde es über die zwei Statements lösen, die du schon hast. Den dritten, bei dem du die Spalten "Anzahl, Titel" vereinigst, benötigst du gar nicht, da du ja sonst in jeder Spalte redundante Informationen (die Gesamtanzahl) hättest.

Und für diese simplen Statements extra Views zu erzeugen, sehe ich auch als etwas oversized an.

Welche konkreten Titel:
select F_Titel from film.veroeffentlichungsjahr LEFT JOIN film.filme ON V_F_ID = F_ID where WHERE YEAR( V_Veroeffentlichung ) =2008;


Anzahl der Titel:
SELECT COUNT( V_Veroeffentlichung ) AS Anzahl FROM film.veroeffentlichungsjahr WHERE YEAR( V_Veroeffentlichung ) =2008;


Mehr brauchst du wirklich nicht.
1

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0