Hallo,
ich habe 2 Tabellen (stark vereinfacht):
Tabelle 1: tblPerson
-------------------------
Spalte 1: PersonID
Spalte 2: Name
Spalte 3: Vorname
Tabelle 2: tblAdresse
---------------------------
Spalte 1: AdresseID
Spalte 2: Ort
Spalte 3: PersonID (Fremdschlüssel, zeigt auf Primärschlüssel von Tabelle 1)
Ich benötige den Namen und Vornamen aus Tabelle1 (tblPerson) sowie den Ort aus Tabelle2 (tblAdresse). Nun kann es aber sein, daß es keinen Verweis von Tabelle 2 auf Tabelle 1 gibt. Es soll aber dennoch der Datensatz mit dem Namen+Vornamen zurückgegeben werden. Also egal ob es eine Relation zwischen den Tabellen gibt, möchte ich immer die Daten aus Tabelle 1 angezeigt bekommen.
Geht das überhaupt?
Mein bisheriger SQL-String sieht so aus:
SELECT tblPerson.Name, tblPerson.Vorname, tblAdresse.Ort FROM tblPerson, tblAdresse WHERE tblPerson.PersonID=tblAdresse.PersonID
Ich freue mich über jede Hilfe oder Tipp.
Gruß
Paul
Announcement
Collapse
No announcement yet.
Datensatz zurückgeben auch wenn es keinen Fremdschlüssel gibt
Collapse
X
-
Datensatz zurückgeben auch wenn es keinen Fremdschlüssel gibt
Tags: None
-
Wieder was gelernt. Muß mich leider noch zu den Anfängern zählen.
Momentan finde ich es für mich noch übersichtlicher ohne "JOIN" in der WHERE-Bedingung zu arbeiten und bis jetzt kam ich damit auch gut über die Runden. Das scheint sich gerade zu ändern...
-
Hallo,
Originally posted by paul30k View Post...Bisher habe ich Joins immer gemieden, da ich finde, daß dadurch der SQL-String sehr unübersichtlich wird. ...
Ich persönlich halte die explizite Formulierung für "übersichtlicher", da hier eine saubere Trennung von Join-Bedingung(en) und tatsächlichen Bedingungen zur Einschränckung der Datenmenge möglich ist. Beim impliziten Join "verschwimmt" das alles in der Where-Klausel.
Gruß Falk
Leave a comment:
-
Vielen dank für die schnelle Antwort. Bisher habe ich Joins immer gemieden, da ich finde, daß dadurch der SQL-String sehr unübersichtlich wird. Jetzt muß ich wohl...
Vielen Dank nochmal.
Gruß
Paul
Leave a comment:
-
Dein Freund ist ein Left outer Join. Für viele DBMS schaut der relevante Teil so aus:
Code:.. FROM tblPerson left (outer) join tblAdresse on tblPerson.PersonID=tblAdresse.PersonID
Leave a comment:
Leave a comment: