Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

MySQL Problem Abfrage mit NOT LIKE

uspc / 9 Antworten / Flachansicht Nickles

Hallo, ich habe ein Problem mit einer MySQL Abfrage.

Ich habe 2 Tabellen, bei denen in einer bestimmten Spalte Nummern stehen.

Dabei muss ich mit SUBSTRING arbeiten, um die Nummern an bestimmten Stellen zu vereinheitlichen.

Nummer 1: 000000001876009

Nummer 2: 1876009

Soweit alles ok.

Jetzt möchte ich die Datensätze angezeigt bekommen, die NICHT in der 2. Tabelle enthalten sind.

SELECT tab1.indexnr FROM tab1, tab2   WHERE SUBSTRING(tab1.BS, 8, 7)

NOT LIKE SUBSTRING(tab2.BN, 1, 7);

Umgekehrt geht’s, also wenn ich sage, zeig mir all Daten die in beiden Tabellen vorkommen.

Statt = setze ich NOT LIKE , das bringt aber nicht den umgekehrten Effekt.

Kann jemand helfen? Danke!

Gruß uspc0

bei Antwort benachrichtigen
uspc gelöscht_254676 „SELECT feld1, feld2 FROM tabelle1 t1 LEFT JOIN tabelle2 t2 ...“
Optionen

Danke für die Hilfe. Ich habe in tab1 leider nicht die Index wie in tab2, daher kann ich wohl die Zeile

ON
  t1.id = t2.id

nicht anwenden. Benötigt wird eigentlich nur die Index (also hier die laufende Tabellen-
Eintragsnummer) aus tab1.
Lass es mir beschreiben:
In tab1 sind verschiedene Vorgänge und die Betriebsnummern vieler Betriebe.
In tab2 sind nur Betriebsnummern unserer Kunden mit den Anschiften der Betriebe.
Alle fremden Betriebe will ich aus tab1 in eine baugleiche tab3 verschieben, brauche ich
eigentlich nicht mehr.

Meine Idee war, in der tab1 wie oben beschieben die fremden Betriebe auszulesen, in einem
bestimmten Feld (per Update) diese zu markieren um sie dann in die baugleiche tab3 zu
verschieben. In tab1 sind dann nur noch unsere Kunden.
Für SQL-Profis bestimmt kein Ding, alles in einem Rutsch zu schreiben.
Der Kontrolle wegen und Übersicht wollte ich das nacheinander ablaufen lassen.
Blöd ist, dass die Betriebsnummern in tab1 und tab2 jeweils anders sind, mit
SUBSTRING(tab1.BS, 8, 7)
SUBSTRING(tab2.BN, 1, 7)
sind die Nummern gleich. Ist leider durch ständigen Import so vorgegeben.

Das LEFT JOIN ... ON - kannst du mir das mit 3 Worten ganz einfach übersetzen?
Vielen Dank, ich versuch natürlich auch mich schlauzulesen...
VG uspc
bei Antwort benachrichtigen