Veröffentlicht 2. Mai 200718 j 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
2. Mai 200718 j Nein, müssen Sie nicht. Das SELECT-Statement wählt bestimmte Felder für die Ausgabe aus, WHERE-Klauseln werden unabhängig davon verarbeitet.
2. Mai 200718 j 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
2. Mai 200718 j 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
2. Mai 200718 j 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.
2. Mai 200718 j "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.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.