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
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.
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
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
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.
Ouzo Geschrieben 2. Mai 2007 Geschrieben 2. Mai 2007 Weniger zu tippen. edit: Ups, da war Akku schneller.
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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden