Laden...

Identifikation gleicher Spalten bei zweifachen LEFt JOIN

Erstellt von Perhalo vor 9 Jahren Letzter Beitrag vor 9 Jahren 787 Views
P
Perhalo Themenstarter:in
22 Beiträge seit 2012
vor 9 Jahren
Identifikation gleicher Spalten bei zweifachen LEFt JOIN

verwendetes Datenbanksystem: <SQL>

Hallo,

ich möchte die Datensätze aus meiner Datenbank mit Hilfe eines dataGrids in einer WPF Umgebung darstellen. Das klappt soweit auch ganz gut. Leider gibt es in der Datenbankstruktur bei einigen Tabellen die Eigenheit, dass sie zweimal auf dieselbe Tabelle verweisen. Ich kann leider gerade nicht daruf kommen wie ich diese Verweise unterscheiden kann.


            SqlConnection con = new SqlConnection();
            con.ConnectionString =constring;
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandText =   "SELECT ?? FROM tblMessmittel AS MM " +
            "LEFT JOIN tblPersonen AS P ON(MM.Verantwortlich_ID=P.ID AND MM.Vertreter_ID=P.ID) ";

            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(ds);

            dataGrid1.ItemsSource = ds.Tables[0].DefaultView;

Ich möchte eigentlich nur eindeutig P.Nachname von jeweils dem Verantworlichen und dem Vertreter im SELECT bekommen, damit mein dataGrid diese anzeigen kann.

Ich hoffe mir kann da jemand weiterhelfen.
Danke im Vorraus und Grüße
Perhalo

849 Beiträge seit 2006
vor 9 Jahren


SELECT P.Nachnahme As Verantwortlich, V.Nachname AS Vertreter FROM tblMessmittel AS MM " +
"LEFT JOIN tblPersonen AS P ON(MM.Verantwortlich_ID=P.ID)" +
"LEFT JOIN tblPersonen AS V ON(MM.Vertreter_ID=V.ID)" 


Edit: kleiner Fehler entfernt.

P
Perhalo Themenstarter:in
22 Beiträge seit 2012
vor 9 Jahren

Super danke! Manchmal kommt man echt auf die simpelsten Ideen nicht.

Ich habs gerade auch noch mit UNION ALL versucht. Das geht nicht!

849 Beiträge seit 2006
vor 9 Jahren

Dein select oben würde übrigens auch nicht funktioniern, da er nur zieht wenn eine Person Vertreter und Verantwortlicher gleichzeitig ist. Du müsstest das And gegen Or austauschen.