Brauche dringend Hilfe bei MySQL abfragen!

Viper14500

Benutzer
Beiträge
6
Hallo, ich weiß das es vielleicht ein wenig unverschämt ist was ich hier frage aber ich bin total verzweifelt! Ich habe in meiner Ausbildung bzw Umschulung eine aufgabe zu einer Datenbank bekommen und an den abfragen verzweifle ich langsam. Ich hatte leider das Problem das ich in dieser Zeit als es behandelt wurde gefehlt habe und dummerweise meinten meine Dozenten nun das es mein problem sei und das es ja google gäbe! -,- Ich hab mittlerweile alles versucht aber ich komme nicht auf die richtigen Lösungen irgendwas geht immer schief daher habe ich gehofft das ich hier vielleicht eine nette Person finde, die mir bei der Lösung helfen kann! Anbei habe ich die abfragen die ich benötige und den ER plan meiner Datenbank!

Benötigte Abfragen:

1. Anzeige aller erfassten Ausweisdokumente eines Kunden
2. Besteht für einen ausgewählten Kunden ein Ausleihverbot?
3. Augabe aller ausgeliehenen Geräte mit geplantem Rückgabedatum
4. Welche Nutzer haben aktuell das Rückgabedatum um 2 tage überschritten
5. Welche Nutzer haben schon mehr als 5 Geräte ausgeliehen. Wer hat die meisten Geräte ausgeliehen (für Rabattaktion) Ausgabe als sortierte Liste.
6. Ausgabe der zu zahlenden Preises für einen Mietvertrag (Mietpreis + Kaution der gemieteten Geräte)
7.Welche Werkzeuge müssen überprüft werden (10 Ausleihen seit der letzten Überprüfung bzw. der Anschaffung oder 2 Jahre nach anschaffung bzw. 1 Jahr nach der letzten Überprüfung)

Das sind die Abfragen die ich benötige einen kleinen teil habe ich schon alleine hinbekommen daher sind es nicht mehr so viele! Ich hoffe mir kann jemand helfen und ich bedanke mich schonmal im Vorraus bei der jeweiligen Person! :)

ce6745-1430584343.jpg
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
So ziemlich alles! Das Problem ist wie gesgat das ich so ziemlich keinen schimmer davon habe das wenige was ich hinbekommen habe habe ich durch google hinbekommen aber diese abfragen bekomme ich einfach nicht hin und mein Dozent ist wie gesagt absolut keine hilfe! -.-
 
So ziemlich alles!

Echt?

Mal so in etwa und ganz schnell einen kleinen Teil Deiner Tabellen nachgebaut und Frage 1 zur Demo:

Code:
test=# create table dok_art(id int primary key, art text);
CREATE TABLE
test=*# create table dokument (id int primary key, dok_art int references dok_art, name text);
CREATE TABLE
test=*# create table kunden (id int primary key, name text);
CREATE TABLE
test=*# create table kunden_dokumente(kunde int references kunden, dokument int references dokument);
CREATE TABLE
test=*# insert into kunden values (1, 'Kunde 1');
INSERT 0 1
test=*# insert into kunden values (2, 'Kunde 2');
INSERT 0 1
test=*# insert into dok_art values (1, 'Perso');
INSERT 0 1
test=*# insert into dok_art values (2, 'Pass');
INSERT 0 1
test=*# insert into dok_art values (3, 'Fleppen');
INSERT 0 1
test=*# insert into dokument values (1, 1, 'dok 1');
INSERT 0 1
test=*# insert into dokument values (2, 2, 'dok 2');
INSERT 0 1
test=*# insert into dokument values (3, 3, 'dok 3');
INSERT 0 1
test=*# insert into kunden_dokumente values (1, 1);
INSERT 0 1
test=*# insert into kunden_dokumente values (1, 2);
INSERT 0 1
test=*# insert into kunden_dokumente values (2, 3);
INSERT 0 1
test=*# select * from kunden k left join kunden_dokumente kd on (k.id=kd.kunde) left join dokument d on (kd.dokument=d.id) left join dok_art da on (da.id=d.dok_art);
id |  name  | kunde | dokument | id | dok_art | name  | id |  art
----+---------+-------+----------+----+---------+-------+----+---------
  1 | Kunde 1 |  1 |  1 |  1 |  1 | dok 1 |  1 | Perso
  1 | Kunde 1 |  1 |  2 |  2 |  2 | dok 2 |  2 | Pass
  2 | Kunde 2 |  2 |  3 |  3 |  3 | dok 3 |  3 | Fleppen
(3 rows)


test=*# select * from kunden k left join kunden_dokumente kd on (k.id=kd.kunde) left join dokument d on (kd.dokument=d.id) left join dok_art da on (da.id=d.dok_art) where k.name='Kunde 1';
id |  name  | kunde | dokument | id | dok_art | name  | id |  art
----+---------+-------+----------+----+---------+-------+----+-------
  1 | Kunde 1 |  1 |  1 |  1 |  1 | dok 1 |  1 | Perso
  1 | Kunde 1 |  1 |  2 |  2 |  2 | dok 2 |  2 | Pass
(2 rows)

Wie gesagt, ganz grob, ohne Indexe, ohne weitere Prüfungen (ob z.B. ein Dokument mehreren Kunden zugeordnet ist). Ist die Struktur von Dir erdacht?
Manches ist, ähm, komisch. Zum Beispiel Kundendokumente. Was sollen da die Spalten iddokument (die zwei mittleren)

Egal. Du suchst jetzt nach JOIN und klemmst Dich dahinter. Das hier ist kein Hausaufgabenservice.[/code]
 
Ja die Datenbank als solches ist auf meinem Mist gewachsen! Wie gesagt ich habe nicht wirklich viel schimmer davon und habe es einfach versucht so gut zu machen wie es geht in der Hoffnung es würde alles so funktionieren! Mit dem Join habe ich mich schon beschäftigt ich werde aber aus dieser MySQL sch*** einfach nicht wirklich schlau! Und das was du meinst mit kundendokumente mit der tabelle das war eine naja notfalllösung weil es sein kann das ein kunde 2 verschiedene dokumente vorlegt und damit man die vielleicht abfragen kann! Und ehrlich gesagt finde ich es ziemlich scheiße von dir zu sagen das ich das hier als "Hausaufgabenservice" nutzen will! Ich würde nicht fragen wenn ich mich nicht damit beschäftigt hätte und es einfach nicht begreife bzw einfach nicht hinbekommen! Ich suche einfach nur hilfe bei einem für mich persöhnlich unlösbarem problem! Aber hey da du ja offensichtlich in Dresden wohnst und ich hier auch bin kannst du mir gerne Unterricht geben in MySQL! ^^
 
Ja die Datenbank als solches ist auf meinem Mist gewachsen! Wie gesagt ich habe nicht wirklich viel schimmer davon und habe es einfach versucht so gut zu machen wie es geht in der Hoffnung es würde alles so funktionieren! Mit dem Join habe ich mich schon beschäftigt ich werde aber aus dieser MySQL sch*** einfach nicht wirklich schlau!

Dann lies die Doku zu PostgreSQL, hier sind Joins erklärt:
http://www.postgresql.org/docs/9.4/static/queries-table-expressions.html

Und das was du meinst mit kundendokumente mit der tabelle das war eine naja notfalllösung weil es sein kann das ein kunde 2 verschiedene dokumente vorlegt und damit man die vielleicht abfragen kann!

Schau Dir an, wie ich es gemacht habe. Da kann ein Kunde auch 3 oder mehr Dokumente vorlegen.

Und ehrlich gesagt finde ich es ziemlich scheiße von dir zu sagen das ich das hier als "Hausaufgabenservice" nutzen will!

*Schrugg*

Ich würde nicht fragen wenn ich mich nicht damit beschäftigt hätte und es einfach nicht begreife bzw einfach nicht hinbekommen! Ich suche einfach nur hilfe bei einem für mich persöhnlich unlösbarem problem! Aber hey da du ja offensichtlich in Dresden wohnst und ich hier auch bin kannst du mir gerne Unterricht geben in MySQL! ^^

Ich arbeite in Dresden, ja. Aber MySQL nein. Davon halte ich nur eines: Abstand. Und zwar viel.
 
Ganz ehrlich wenn du der Meinung bist das MySQL scheiße, ist so entnehme ich es jedenfalls deinem letzten satz, dann verstehe ich nicht wieso du dich in diesem Forum aufhälst! Ich weiß nicht in wie fern MySQL wirklich scheiße ist, aber ich weiß das es trotzdem sehr viel genutzt wird also gibt es im zweifel keine wirkliche alternative oder diese Umschulung ist beschissener als ich bisher wusste! Aber trotzdem wundert es mich dann das du dich mit MySQL beschäftigst und du scheinbar mehr ahnung hast von der sache als ich! Von demher und das sollte man alleine schon von deinem Alter her in betracht ziehen können, möchtest du helfen aber davon bist du ganz weit weg, von demher schreibe doch einfach nicht mehr auf Themen von denen du der meinung bist das es sich nicht lohnt oder wie in meinem fall das die leute es sich nur einfach machen wollen! Das würde für dich bedeuten das du weniger zu tun hast und dich mehr auf dein reallife beziehen könntest und für mich das ich vielleicht jemanden finde der mir wirklich helfen möchte, weil wie gesagt ich suche hier nich jemanden der für mich meine "Hausaufgaben" macht sondern jemanden der mir bei meinem Problem hilft da meine umschulung nicht die beste ist und ich trotzdem darauf angewiesen bin und es für mich mein leben bedeutet!!
 
SQL ist 'mein Hobby' und PostgreSQL als SQL-Datenbank ist in vielen Dingen besser als MySQL:

  • absolut freie Lizenz
  • reines Community-System
  • viel näher an den SQL-Standards als MySQL
  • MySQL macht manche Dinge schlicht verheerend falsch
  • PostgreSQL hat sehr viele Features, die weit über das, was die SQL-Specs vorschreiben, hinausgehen

Hast Du denn mittlerweile mal was zu JOINS gelesen? Hilfe zur Selbsthilfe ist meiner Meinung nach besser als eine fertige Lösung und meine Art, hier zu helfen.
 
Meine Aufgabe ist es aber dummerweise es als MySQL zu machen und wie gesagt ich habe mich mit joins beschäftigt aber ich komme einfach nicht damit klar und das erwähnte ich bereits! Von demher ist deine hilfe keine wirkliche hilfe! Um es dir genau zu sagen habe ich mir sogar 2 Bücher mitgeommen und im internet recherchiert aber es bringt mir einfach nicht weil alles ist so das man schon ahnung haben muss und das nicht gerade wenig um das zu verstehen was wo auch immer geschrieben ist! Ich weiß auch das meine datenbank die ich erstellt habe bestimmt nicht die beste ist aber ich bin ehrlich gesagt sehr froh das ich das hinbekommen habe ohne das mir irgendwer geholfen hat!
 
wie gesagt ich habe mich mit joins beschäftigt aber ich komme einfach nicht damit klar und das erwähnte ich bereits!

Ja. Vor 1 1/2 Stunden habe ich schon gefragt, was Du versucht hast. Du redest nur, zeigst aber nicht, was genau Du versuchst. Statt dessen scheinst Du auf eine fertige Lösung zu warten. Ich habe Dir ein ein SQL für Deine erste Frage gezeigt. Jetzt bis Du an der Reihe.
 
ah ok das meinst du! Ok wenn ich dir jetzt zeigen müsste was ich alles versucht habe, würde das bedeuten das ich alles im kleinsten detail gespeichert habe und das würdest auch du (und da bin ich mir ziemlich sicher auch nicht tun!) ich bin mit der gesammten sache seit etwa 3 wochen beschäftigt und das nicht nur mit den joins sondern auch mit der planung der datenbank, der umsetzung der datenbank und ich habe auch das problem das ich eine Kundendokumentation erstellen muss! von demher habe ich nicht jeden schritt gespeichert und kann dir demzufolge nicht wirklich exakt sagen welche befehle und varianten der befehle und allem drum und dran versucht habe, weil aus diesen ganzen sachen könnte ich bestimmt schon einen roman verfassen wenn ich alles gespeichert hätte! ;) Verstehst du jetzt vielleicht mein problem? ^^
 
Was möchtest Du denn nun hören?

Ich hab Dir gezeigt, wie man mit Joins arbeiten kann. Versteh mein Beispiel, lies weitere Doku, versuch es zu verstehen. Dann kommst Du auch weiter.

Ich versuch inzwischen zu verstehem wie aus einer Aufgabe bei einer (Um)Schulung nun plötzlich eine Kundendokumentation rauskommen muß.
 
Werbung:
+ 1 für @akretschmer Bester start in die Woche den ich je hatte :D

@Viper14500 Es gibt hier ein paar grundlegende Dinge die du missverstehst.
Zuersteinmal wird dir hier keiner deine Hausaufgaben machen. Du schreibst zwar das du das nicht willst... Aber dennoch drängst du darauf das wir dir hier mehr und mehr Arbeit abnehmen.
Als nächstes solltest du dir vllt. mal gedanken machen WAS du nicht verstehst... Zu schreiben:
Um es dir genau zu sagen habe ich mir sogar 2 Bücher mitgeommen und im internet recherchiert aber es bringt mir einfach nicht weil alles ist so das man schon ahnung haben muss und das nicht gerade wenig um das zu verstehen was wo auch immer geschrieben ist!
Hilft uns auch nicht weiter... Oder meinst du es interessiert einen von uns wieviel du schon getan hast um es nicht zu verstehen?
Wo ist dein Problem? Zu schreiben "ich verstehe Joins nicht" ist genau das gleiche wie zu sagen "Ich verstehe multiplizieren nicht"... Sehr detailierte Problembeschreibung, oder?
 
Zurück
Oben