Thomas: Join über einen unterschiedlichen Wert

Hallo zusammen,

ich habe ein Problem und kann es mir leider nicht erklären.
Kurz, ich habe 2 Tabellen:
Tabelle A - Feld 'nr' (BigInt) mit Wert '1107190099' und andere Felder...
Tabelle B - Feld 'nr' (String) mit Wert '01107190099' und andere Felder...
(Das mit den unterschiedlichen Datentypen ist erstmal leider so nötig, bitte nicht weiter bohren)

In beiden Felder 'nr' steht normalerweise der selbe Wert nur jetzt in diesem Beispiel (Sonderfall der vorkommen kann) nicht.

Wenn ich jetzt einen LEFT JOIN anwende (select ... left join tabelleB on tabelleA.nr = tabelleB.nr) dann findet/verknüpft er mir den Datensatz, trotz der unterschiedlichen Werte. Wie kann ich das verhindern, nachdem das Kind schon in den Brunnen gefallen ist?

Vielen Dank schonmal für jede Hilfe/Antwort.

Grüße

  1. Hi,

    Wenn ich jetzt einen LEFT JOIN anwende (select ... left join tabelleB on tabelleA.nr = tabelleB.nr) dann findet/verknüpft er mir den Datensatz, trotz der unterschiedlichen Werte. Wie kann ich das verhindern, nachdem das Kind schon in den Brunnen gefallen ist?

    ziehe das Kind wieder mit einem String heraus. Mache aus der Zahl einen Text.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hi!

    Tabelle A - Feld 'nr' (BigInt) mit Wert '1107190099' und andere Felder...
    Tabelle B - Feld 'nr' (String) mit Wert '01107190099' und andere Felder...
    Wenn ich jetzt einen LEFT JOIN anwende (select ... left join tabelleB on tabelleA.nr = tabelleB.nr) dann findet/verknüpft er mir den Datensatz, trotz der unterschiedlichen Werte. Wie kann ich das verhindern, nachdem das Kind schon in den Brunnen gefallen ist?

    Der Intergerwert versucht den String auf seine Seite zu bekommen. Dann kann das DBMS beide nach Zahlen vergleichen und stellt Übereinstimmung fest. Ich denke, wenn du zuerst den Interwert nach String CASTest/CONVERTierst, sollte sich dieses Problem gelöst haben - oder auch möglicherweise durch ein anderes ersetzt haben. Denn der Typecast dürfte wirksam verhindern, dass zum Verknüpfen ein eventuell vorhandener Index herangezogen werden kann.

    Lo!