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 xafford „Vielleicht habe ich es etwas unklar formuliert: Ich meinte, ...“
Optionen

@xafford: Ich habe das jetzt angelehnt nach deinem Vorschlag gelöst. An einer anderen Stelle, direkt beim Imoprt der CSV-Dateien markiere ich in einer neuen Spalte unsere Kunden. Das kann ich mit IST GLEICH ganz einfach lösen. Da ich noch andere Datensätze verschieben muss bedinge ich das nun so, dass auch ganz einfach alle fremde Betriebe verschoben werden.

Das DB-Design ist etwas kuddelmuddel, bedingt aber durch den wöchentlichen Import mehrerer neuer vorgegebener CSV-Dateien entstanden. Aufgrund der Anzahl der Datensätze lasse ich nach Abarbeiten der Felder die Daten wieder in eine CSV exportieren  (so will es meine Kollegin) und die Tabellen werden unterschiedlich geleert. Also immer neue Indexwerte. Hatte irgendwie keine bessere Idee... Soll ja auch nur eine zeitlich begrenzte Arbeitshilfe - eine Krücke - sein.

Warum das oben beschriebene (NOT LIKE) sich als doch nicht ganz so einfache Abfrage der DB  rausstellt ist mir aber doch noch etwas unklar. Nun ja, in der nächsten Runde werde ich noch mehr auf Indexwerte und DB-Design achten. Und trotzdem noch etwas an der Lösung oben basteln...

Danke an allen Helfern! VG uspc

bei Antwort benachrichtigen