Join-Tabelle zweimal auf zwei verschiedene Spalten der gleichen Tabelle
Ich habe ein sehr verwirrendes Datenbank mit einer Tabelle, die enthält zwei Werte, die ich brauche in eine separate Tabelle. Hier ist mein Problem:
Table1
- id
Table2
- id
- table1_id
- table3_id_1
- table3_id_2
Table3
- id
- value
Muss ich gehen aus Tabelle1 und eine Verknüpfung durchführen, dass würde mir wieder den Wert von table3
in zwei separate Spalten. Also ich möchte so etwas wie dies:
table1.id | table2.id | table2.table3_id_1 | table2.table3_id_2 | X | Y
Wo X
und Y
sind die Werte für die Zeile, verbunden durch table3_id_1
und table3_id_2
bzw.
Vielleicht machen Sie Variablen oder so etwas, so kann ich die filter in einem WHERE
- Klausel?
InformationsquelleAutor Red | 2012-05-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine Notwendigkeit der Beteiligung
table1
.table2
hat alles, was Sie brauchen - vorausgesetzt, es gibt eine foreign key-Einschränkung Gewährleistung der referentiellen Integrität (allet2.table1_id
sind tatsächlich intable1
). Sonst können Sie beitreten wollen, umtable1
, dabei aktivieren Sie nur die Zeilen auch intable1
.Benutze ich
LEFT [OUTER] JOIN
(und nicht[INNER] JOIN
) zu verbinden, um beide Instanzen vontable3
aus einem ähnlichen Grund: es ist unklar, ob die referenzielle Integrität gewährleistet ist - und ob die key-Spalten könnenNULL
. Ein[INNER] JOIN
würde drop Zeilen aus dem Ergebnis, wenn keine übereinstimmung gefunden wird. Ich nehme an, Sie würden vielmehr anzuzeigen, wie es Zeilen mit einemNULL
Wert für fehlendex
odery
.table3.id
werden mussUNIQUE
, oder wir können das multiplizieren von Zeilen mit mehrere Spiele von jedemLEFT JOIN
:InformationsquelleAutor Erwin Brandstetter
Wenn Sie sich eine Tabelle mehrfach verwenden, Aliase zu unterscheiden:
InformationsquelleAutor nosid
InformationsquelleAutor RedFilter