SQL < Sonstige < Schule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 08:23 Fr 09.03.2007 | Autor: | raynes |
Aufgabe | welche titel sind die besten renner?geben sie eine liste mit videonummer, videotitel und anzahl der ausgeliehenen videos aus! |
hi,
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
diese aufgabe bezieht sich auf die datenbank auf der seite webvideo.be.schule.de und ich habe das problem dass man hier daten aus 2 verschiedenen tabellen verknüpfen muss. ich habe aber eine count abfrage drin und ich weiß nicht wie ich es jetzt schaffe kann dass aus 2 verschiedenen tabellen daten importiert werden.
meine abfrage sieht wie folgt aus:
select count(*) anzahl, vinr from ausleihe group by vinr order by anzahl desc
ja die videotitel müsste ich jetzt aus der tabelle videos importieren....
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 09:49 Fr 09.03.2007 | Autor: | Marc |
Hallo raynes,
> welche titel sind die besten renner?geben sie eine liste
> mit videonummer, videotitel und anzahl der ausgeliehenen
> videos aus!
> hi,
>
> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
>
> diese aufgabe bezieht sich auf die datenbank auf der seite
> webvideo.be.schule.de
Dort kann man die Definition der Tabellen nicht öffentlich einsehen, deswegen ist diese Antwort vielleicht nicht exakt.
> und ich habe das problem dass man
> hier daten aus 2 verschiedenen tabellen verknüpfen muss.
> ich habe aber eine count abfrage drin und ich weiß nicht
> wie ich es jetzt schaffe kann dass aus 2 verschiedenen
> tabellen daten importiert werden.
> meine abfrage sieht wie folgt aus:
> select count(*) anzahl, vinr from ausleihe group by vinr
> order by anzahl desc
> ja die videotitel müsste ich jetzt aus der tabelle videos
> importieren....
Wie ich aus diesem Screenshot http://webvideo.be.schule.de/screenshot/sqlWithHelp.html entnehme, kannst Du einfach mehrere Tabellennamen im SELECT-Befehl angeben. Die Datenbank verknüpft die Zeilen der einzelnen Tabellen dann zu einer "großen" Tabelle.
Wahrscheinlich soll aber in einer Zeile die Ausleihe-Anzahl und die videotitel stehen, das erreichst Du, indem Du in die WHERE-Klausel mit aufnimmst
ausleihe.vinr = videos.vinr
also so
SELECT count(*) AS anzahl, videotitel FROM ausleihe, videos WHERE ausleihe.vinr=videos.vinr GROUP BY vinr ORDER BY anzahl DESC
Es handelt sich hierbei um einen impliziten INNER JOIN der beiden Tabellen ausleihe und videos, den man auch deutlicher so schreiben kann (sofern die Datenbank ihn unterstützt, es sieht bei Deiner Datenbank nicht so aus)
SELECT count(*) AS anzahl, videotitel FROM ausleihe INNER JOIN videos ON (ausleihe.vinr=videos.vinr) GROUP BY vinr ORDER BY anzahl DESC
Viele Grüße,
Marc
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 12:43 Di 20.03.2007 | Autor: | raynes |
es funktioniert leider immer noch nicht... und ich kann auch nichts mit der fehlermeldung anfangen... das problem ist meiner meinung nach, dass vititel nur in der tabelle videos enthalten ist, nicht aber in der tabelle ausleihe...
Ihre SQL-Anweisung:
SELECT count (*) AS anzahl, vititel from ausleihe, videos where ausleihe.vinr=videos.vinr group by vinr order by anzahl desc limit 50
enthält noch Fehler.
MySQL meldet : 1064 : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(*) AS anzahl, vititel from ausleihe, videos where ausleihe.vin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:20 Di 20.03.2007 | Autor: | raynes |
okay hat sich erledigt, hab den fehler rausgefunden der richige code sieht so aus:
SELECT count(*) AS anzahl, vititel FROM ausleihe, videos WHERE ausleihe.vinr=videos.vinr GROUP BY ausleihe.vinr ORDER BY anzahl DESC limit 50
danke nochmal!
raynes
|
|
|
|