dedlfix: Datenbankabfrage

Beitrag lesen

Tach!

dedlfix, ich glaube, dass EXISTS() hier nicht nötig ist. Ein innerer Join kümmert sich da automagisch drum.

Natürlich kann man da und in vielen anderen Situationen auch Joins statt Subquerys verwenden. Aber ich finde Joins zum einen weniger verständlich, und zum anderen weniger testbar. Für einen Join musst du immer eine komplette große Query erstellen und bekommst dann immer ein Ergebnisprodukt aus allen beteiligten Datenmengen. Subquerys kann man recht einfach extrahieren und einzeln testen, ob sie die erwartete Ergebnismenge zurückliefern. Alles was die "andere Datenmenge" betrifft steht in einem Subquery schön beisammen und verteilt sich nicht über die einzelnen Klauseln der Hauptquery.

Natürlich gibt es auch Situationen, für die eine Subquery-Lösung nicht in Frage kommt. Aber ich finde die Vorteile von Subquery-Lösungen überzeugend genug, um mir bei datenmengenübergreifenden Aufgaben immer als erstes die Frage zu stellen: "(wie) kann man das mit einer Subquery lösen?"

dedlfix.