dedlfix: Datenbankabfrage

Beitrag lesen

Tach!

Ich muss jetzt alle Namen und Mail-Adressen auflisten, von dennen ein Lieferschein vorhanden ist und z.B nicht eine Mailadresse von web.de.

Wie würde eine entsprechende SQL Anweisung lauten?

Das ist nicht die Frage, die ich dir beantworten werde. Aber ich werde dir die Werkzeuge nennen, die ich in einem solchen Fall nehmen würde.

Als erstes erstelle ich eine Query, die die Haupttabelle befragt, ohne zunächst auf die Lieferscheine zu achten. Wenn die läuft, gehts weiter. Es liest sich so, als ob du aus der Lieferschein-Tabelle nur wissen willst, ob es Datensätze gibt. Für diese Frage erstelle ich in einem solchen Fall eine Query, die erstmal die Lieferscheine für einen bestimmten Kunden auflistet. Diese Query kommt nun zusammen mit einem EXISTS() als weitere Bedingung in die erste Query. Die zweite wird dabei so verändert, dass die feste Kundennummer durch einen Bezug auf das entsprechende Feld der Hauptquery ersetzt wird. Das nenne man dann Correlated Subquery.

Ein anderer Lösungsweg geht über Joins, aber der vorgenannte mit dem EXISTS() liest sich für mich intuitiver: ... WHERE ... AND EXISTS(zweite query).

dedlfix.