Ich kämpfe mit einer Unterabfrage (Oracle 11). Das folgende Beispiel wird für den Zweck der Frage "erfunden".Wie schränkt man die Ergebnisse einer korrelierten Unterabfrage ein, die äußere Abfragealiase verwendet?
Wieder ist dies ein erfundenes Beispiel. Lassen Sie uns keine Diskussionen über Namenskonventionen, Normalisierung oder Altersberechnungen anstellen.
Das Problem ist, dass die korrelierte Abfrage mehrere Ergebnisse zurückgibt und ich muss die erste auswählen. Wenn ich diese korrelierte Abfrage in eine andere umbrechen lasse, um eine select .... where rownum<=1
zu machen, werde ich die Alias-Referenz auflösen.
Bitte arbeiten Sie mit meiner Frage! Wenn Sie versuchen, zu helfen, geben Sie bitte an, wie ich die Ergebnisse der oben genannten Unterabfrage einschränken kann oder dass dies nicht möglich ist. Schreiben Sie diese Abfrage nicht in einige Joins um, da ich nicht in der Lage wäre zu überprüfen, ob Ihre Lösung funktioniert. Wenn die obige Unterabfrage nicht auf eine einzelne Zeile beschränkt werden kann, werde ich die vollständige Abfrage in Joins selbst entwickeln. Bei dieser Frage geht es ausschließlich darum, Ergebnisse einzuschränken, ohne die Alias-Referenz zu unterbrechen.
Wenn Sie schließlich gutes SQL schreiben möchten, müssen Sie mehr Inline-Ansichten als Unterabfragen verwenden. Mit Unterabfragen ist alles eng gekoppelt und schwer zu debuggen. Inline-Ansichten fördern eine lose Kopplung, wodurch es einfacher wird, Aufgaben in unabhängige, verwaltbare Abschnitte aufzuteilen. Das wird mit deinem kleinen Beispiel nicht viel ausmachen.Aber wenn Sie anfangen, riesige Abfragen zu erstellen, macht das einen großen Unterschied. –