Mehrere Fremdschlüssel aus einer Tabelle verknüpfen, um einzelne primäre Schlüssel in der zweiten Tabelle
Ich habe eine Datenbank mit drei Tabellen, einer Haushalt-Tisch, einen Erwachsenen Tabelle und einer Tabelle Benutzer. Der Haushalt Tabelle enthält zwei Fremdschlüssel, iAdult1ID und iAdult2ID. Die Users Tabelle hat eine iUserID primary key-und die Erwachsenen-Tisch hat eine entsprechende iUserID foreign key. Eine der Spalten in der Benutzer-Tabelle ist strUsername, eine e-mail-Adresse.
Ich versuche eine Abfrage schreiben, die mir erlauben, die Suche nach einem e-mail-Adresse, die entweder für Erwachsene, die einen Bezug zum Haushalt. Also ich habe zwei Fragen, unter der Annahme, dass alle Werte, die nicht null sind, wie kann ich dies tun?
Und zwei, in der Realität, iAdult2ID kann null sein, ist es immer noch möglich, schreiben Sie eine Abfrage, um dies zu tun?
Vielen Dank für Ihre Hilfe. Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, nur left join auf die gleiche Tabelle zweimal:
Während die akzeptierte Antwort ist korrekt, ich dachte, es wäre hilfreich, darauf hinzuweisen, daß das ursprüngliche problem ist eine Folge der, wie die Daten modelliert sind.
Idealerweise sollten Sie das AdultIds aus dem Haushalt in eine Tabelle und neue Tabelle namens HouseholdAdults enthält sowohl die HouseholdId und die iAdultId. Dann können Sie eine oder mehrere Personen pro Haushalt.
Hier ein screenshot um zu veranschaulichen, was ich meine.
Derzeit haben Sie eingeschränkt, die Beziehung zwischen den Erwachsenen und den Haushalt zu mindestens einem und nicht mehr als zwei. Was ist mit Häusern mit keine Erwachsene oder drei? Auch, Sie können nicht hinzufügen ein Haushalt aufnehmen, bevor Sie hinzufügen ein Erwachsener aufnehmen? Wo wollen Sie speichern Informationen über eine Erwachsene Beziehung zu einem Haushalt? Zum Beispiel, wer ist der Eigentümer, Mieter, wenn Sie verschoben, gekauft, etc. Im Grunde alles, was relevant für die Beziehung.
Diese sind wohl alle nicht-Themen für Sie im moment, aber immer noch lohnt, einige Gedanken, die ich denke.
Dieser Umbau dann behebt die Probleme, die Sie mit Abfragen die Daten. Mit der neuen Tabelle in den Ort, um sich mit dem Haushalt Tabelle und die Erwachsenen Tabelle können Sie ganz einfach eine Abfrage der Beziehung mit den folgenden.
Hier einige links, erklärt Sie weiter.
Viele-zu-Viele-Beziehungen
Datenbank-Normalisierung