2016-07-31 17 views
-2

Ich versuche, eine linke Verknüpfung für Datensätze zwischen zwei Spalten aus verschiedenen Tabellen zu tun, aber die Daten werden nicht für eine der Spalten angezeigt.Linke Verknüpfung funktioniert nicht im Zugriff

SQL-Code:

SELECT [TABLE 1].[CODE 1], [TABLE 2].[CODE 2] 
FROM [TABLE 2] 
LEFT JOIN [TABLE 1] 
ON [TABLE 1].[CODE 1]=[TABLE 2].[CODE 2]; 

enter image description here enter image description here

+0

Bitte zeigen Sie uns die Daten aus Tabelle 1 und Tabelle 2 und Ihre erwarteten Ergebnisse. – sstan

+0

Beitrag aktualisiert. Ich habe die Bilder von Tabelle 1 und Tabelle 2 hinzugefügt –

+0

Ich sehe keine übereinstimmenden Werte zwischen beiden Tabellen. Warum erwarten Sie, dass Daten für "Tabelle 1" angezeigt werden? Was ist Ihr erwartetes Ergebnis genau? Ich habe das Gefühl, dass Sie grundlegende Missverständnisse darüber haben, wie Joins funktionieren. – sstan

Antwort

0

Für mich bedeutet dies, dass die Spaltenwerte nicht gleich sind, sind sie die gleichen Daten-Typ? Hat man führende Nullen, aber die andere nicht?

Die Werte müssen eine perfekte Übereinstimmung für die Verbindung zur Arbeit sein.

+0

Ich kann nur die Daten für Code 2, aber nichts für Code 1 sehen. Code 1 hat entsprechende Werte in Code 2. –

+0

War Code 1 leer zu beginnen mit, hat mein Vorschlag das Problem auf die andere Spalte verschoben? – Lunster

+0

Es gibt Leerzeichen in beiden Codes, aber immer noch, es sollte Werte geben –

0

Ändern Sie Ihren LINKEN JOIN zu einem INNEREN JOIN. Siehst du Ergebnisse? Das zeigt an, dass es mindestens einige Code 1 in Code 2 gibt.

Wechseln Sie jetzt zurück zum LINKEN JOIN und vertauschen Sie die Tabellen (zB "Nehmen Sie alle Datensätze aus TABELLE 1 und vergleichen Sie mit TABELLE 2") und add WHERE [TABLE 2].[CODE 2] IS NULL. Dadurch erhalten Sie alle Code 1, die Code 2 nicht entsprechen. Etwas wie dieses:

SELECT [TABLE 1].[CODE 1], [TABLE 2].[CODE 2] 
FROM [TABLE 1] 
LEFT JOIN [TABLE 2] 
ON [TABLE 1].[CODE 1]=[TABLE 2].[CODE 2] 
WHERE [TABLE 2].[CODE 2] IS NULL; 

Wenn Sie keine Daten erhalten, bedeutet das, dass alles übereinstimmt.

Verwandte Themen