Tabellen verknüpfen mit nicht eindeutigen Datensätzen

ryk123

Neuer Benutzer
Beiträge
3
Hallo zusammen,

ich versuche gerade ein Abfrage zu erstellen um zwei Tabellen zu verknüpfen leider sind die Spalten vom Format nicht immer 100% gleich, da Tabelle A bsp. vierstellige und sechsstellige Nummern hat und Tabelle B nur sechsstellige Nummern beinhaltet.
Tabelle A:
ID Nummer
1 006400
2 6410
3 6420
4 6430

Tabelle B:
Nummer BEZ
006400 Apfel
006410 Birne
006420 Kiwi
006430 Banane

Wenn ich folgendes Statement ausführe ist natürlich ich klar das nur der "Apfel" ausgegeben wird, da die Nummern übereinstimmen.
SELECT * FROM a INNER JOIN b ON a.NUMMER = b.NUMMER

Wie kann ich ein Statement erstellen sodass bei der vierstelligen Nummer automatisch eine "00" vorgehängt wird, damit alle Datensätze ausgegeben werden?

MfG Rik
 
Werbung:
1.: Würde ich einen Foreign Key für die Tabelle B anlegen.
2.: Wenn in der Tabelle A und Tabelle B die Spalte "Nummer" als Integer definiert ist, fallen die führenden Nullen weg.
3.: Wäre es denke ich mittels der Concat-Funktion möglich, würde die Struktur jedoch erneut durchdenken, weil da einiges meiner Meinung nach schief angelgt wurde.
4.: Warum referenzierst du auf die Nummer, wenn der Primary Key jedoch die ID ist?

Sind einige Lücken aufdeckbar ;)

frag einfach, wie die Datenbank bisher aufgebaut wurde, dann können wir weiterhelfen
 
Werbung:
Hallo
ein Lösungsansatz (vorausgesetzt du brauchst nur die Daten aus Tabelle B und die Nummern dort immer 6 Stellen lang sind):

Code:
SELECT * FROM TabelleB WHERE Nummer in (SELECT RIGHT(CONCAT('000000', Nummer), 6) FROM TabelleA)
 
Zurück
Oben