Barlee hat geschrieben:[....]
Du beschreibst eine typische Aufgabenstellung, die sich mittels LEFT JOIN lösen lässt. Damit werden alle (selektierten) Ergebnisse aus Tab1 zurückgegeben. Existiert keine Entsprechung in Tab2, dann führt das zur Ausgabe von DB NULL.
Schau Dir am besten ein paar Beispiele zu LEFT JOIN hier im Forum an.
Falls konkrete Fragen sind, melde Dich.
Gruß Barlee
Ups. Die Suchergebnisse hier aus dem Forum haben mich nicht weiter gebracht (hint: Ich bin blutiger DB-Anfänger). Also Google bemüht.
Ergebnis: Das lässt sich wohl nicht mehr simpel mit nem Abfrageentwurf wie im screenshot (s.o.) realisieren.
Offensichtlich muss ich da die Abfrage direkt in der SQL-Ansicht bearbeiten?
Meine aktuelle Abfrage sieht so aus:
Code: Alles auswählen
SELECT "Kunden"."Name", "Kunden"."Vorname", "Kunden"."Strasse", "Kunden"."Hausnummer", "Kunden"."Adresszusatz", "Kunden"."PLZ", "Anrede"."Anrede", "Titel"."Titel", "Briefanrede"."Briefanrede", "Ort"."Ort", "Kundenkategorien"."Kategorie" FROM "Kunden", "Anrede", "Titel", "Briefanrede", "Ort", "Kundenkategorien" WHERE "Kunden"."Anrede" = "Anrede"."Anrede-ID" AND "Kunden"."Titel" = "Titel"."Titel-ID" AND "Kunden"."Briefanrede" = "Briefanrede"."Briefanr-ID" AND "Kunden"."Ort" = "Ort"."Ort-ID" AND "Kunden"."Kategorie" = "Kundenkategorien"."Kategorie-ID" AND "Kunden"."Kategorie" = 1
Leider habe ich auf die Schnelle keine brauchbare deutschsprachige Seite (mein Englisch ist grottig bis nicht vorhanden) für einen SQL-Schnelleinstieg gefunden. Aus diversen Fragementen reime ich mir zusammen, dass irgendwo in den obigen code ein
Code: Alles auswählen
LEFT JOIN "Titel" ON "Kunden"."Titel" = "Titel"."Titel-ID"
eingefügt werden muss.
Dies müsste ja bewirken, dass die Abfrage-Spalte "Titel" entweder mit einem zugeordneten Titel oder - sofern kein Titel in Tabelle "Kunden" zugeordnet - mit DB NULL gefüllt und der entsprechende Kundendatensatz ausgegeben wird. Soweit korrekt?
Aber wo? Alle bisherigen Versuche scheiterten an Syntax-Fehlern.
Einzig
Code: Alles auswählen
SELECT "Kunden"."Name", "Kunden"."Vorname", "Kunden"."Strasse", "Kunden"."Hausnummer", "Kunden"."Adresszusatz", "Kunden"."PLZ", "Anrede"."Anrede", "Titel"."Titel", "Briefanrede"."Briefanrede", "Ort"."Ort", "Kundenkategorien"."Kategorie" FROM "Kunden", "Anrede", "Titel", "Briefanrede", "Ort", "Kundenkategorien" LEFT JOIN "Titel" ON "Kunden"."Titel" = "Titel"."Titel-ID" WHERE "Kunden"."Anrede" = "Anrede"."Anrede-ID" AND "Kunden"."Briefanrede" = "Briefanrede"."Briefanr-ID" AND "Kunden"."Ort" = "Ort"."Ort-ID" AND "Kunden"."Kategorie" = "Kundenkategorien"."Kategorie-ID" AND "Kunden"."Kategorie" = 1
funktioniert. Wirft aber leider ein ungewolltes Ergebnis aus: Es werden alle möglichen Kombinationen (Jeder Kunde mit jedem möglichen Titel) ausgeworfen.
Jetzt stellen sich mir folgende Fragen:
1. Muss/sollte ich mich wirklich in SQL einarbeiten?
2. Wenn ja- wie/wo (links, Buchempfehlungen?)?
Sollte sich jemand erbarmen und mir erstmal diese Abfrage korrekt in SQL "schreiben", bin ich latürnich auch nicht abgeneigt...
Danke im voraus für weitere Hilfe