fi-newbie Geschrieben 2. Mai 2007 Geschrieben 2. Mai 2007 Hallo zusammen, in den Lösungsvorschlägen der IHK werden bei SQL-Anweisungen im SELECT-Teil nur die Felder aufgeführt, die angezeigt werden sollen. Die in WHERE-Bedingung angesprochen Felder fehler im SELECT-Teil. Meines Wissens müssen doch da auch die Felder aufgenommen werden, auf die in der WHERE-Bedindung abgefragt wird. Oder liege ich da falsch? mfg newbie Zitieren
lordy Geschrieben 2. Mai 2007 Geschrieben 2. Mai 2007 Nein, müssen Sie nicht. Das SELECT-Statement wählt bestimmte Felder für die Ausgabe aus, WHERE-Klauseln werden unabhängig davon verarbeitet. Zitieren
Akku Geschrieben 2. Mai 2007 Geschrieben 2. Mai 2007 Da liegst Du falsch. Im Select Bereich gibst Du an, welche Werte von Feldern (einer Tabelle) Du sehen möchtest. In der Where Klausel führst Du nur die Felder auf, die Du für die Eingrenzung deiner Datenmenge benötigst. Select Name, Vorname From Adressen Where PLZ = '44227'; oder (ja ich weiß ein sehr dummes Beispiel, aber sehr effektiv) Select Ad.Name, Ad.Vorname, Ort.Ortsbezeichnung From Adressen Ad, Orte Ort Where Ad.PLZ = '44227' AND Ort.PLZ =Ad.PLZ Zitieren
fi-newbie Geschrieben 2. Mai 2007 Autor Geschrieben 2. Mai 2007 Alles klar, Danke Euch! Das hätte sicher Punktabzug gegeben, wenn ich die Felder oben mit aufführen würde. Noch eine Frage: Wenn ich von mehreren Tabellen lese, müsse hinter den Tabellennamen ja nicht die Angabe "FROM Tabelle1 as Tab1, Tabelle2 as Tab2" stehen, oder? Ich kann ja dann im SELECT-Teil die Felder mit Tabelle1.Feld ansprechen. Was wäre der Vorteil, wenn ich ein "as Tab1" anhänge? mfg newbie Zitieren
Akku Geschrieben 2. Mai 2007 Geschrieben 2. Mai 2007 In normalen Fällen bringen die sogenannte Aliase keinen großen Vorteil, allenfalls weniger Tipparbeit, falls Du mit den Aliasen die Tabellennamen abkürzen kannst. Sie bringen unter anderen dann erhebliche Vorteile, wenn Du gleichnamige Tabellen aus unterschiedlichen Schematas benutzt oder bei Unions. Da mußt Du Dich aber schon sehr in die Materie einarbeiten. Zitieren
Ouzo Geschrieben 2. Mai 2007 Geschrieben 2. Mai 2007 Weniger zu tippen. edit: Ups, da war Akku schneller. Zitieren
Fieldy Geschrieben 2. Mai 2007 Geschrieben 2. Mai 2007 "FROM Tabelle1 as Tab1, Tabelle2 as Tab2" stehen, oder? Ich kann ja dann im SELECT-Teil die Felder mit Tabelle1.Feld ansprechen.Grundsätzlich würde ich insbesondere bei Joins die "saubere" Schreibweise verwenden, auch wenn das etwas mehr Schreibarbeit ist: SELECT t1.colum1, t1.colum2, t2.colum3, t2.colum4 FROM tabelle1 AS t1 INNER JOIN tabelle2 AS t2 ON t1.colum1 = t2.colum2 WHERE t1.colum = 'bla' Das ist meiner Meinung nach wesentlich übersichtlicher. Vor allem dann, wenn man mehrere Joins in der SQL-Abfrage hat. Und außerdem muss man die Abhängigkeiten der Primär- und Fremdschlüssel nicht erst mühsam über die WHERE-Klausel verbinden. Habs jetzt nich nachgemessen, aber diese Variante ist auch performanter als die "dreckige" Variante Aber in der Prüfung ist natürlich beides richtig, weil beide SQL-Abfragen die gleichen Ergebnismengen liefern. Ist natürlich auch Geschmackssache, welche Variante man verwendet. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.