2.9k Aufrufe
Gefragt in Datenbanken von Einsteiger_in (7 Punkte)
Guten Morgen zusammen,

wie ihr im Betreff vlt. bräuchte ich eure Hilfe bei einem Problem zwecks vergleich von 2 Tabellen in MySQL.

Ich weis das der einfach vergleich mit Inner JOIN Funktioniert.
Allerdings stellt sich bei mir das problem wie folgt:

Ich habe 2 Tabellen. Nun muss ich überprüfen ob z.B.:

Inhalt von Feld1 in Tabelle 1

irgendwo in Tabelle2 enthalten ist. Ich muss also jedesmal wenn wenn ich den Inhalt des aktuellen Felds in Tabelle1 überprüfen will die Komplette Tabelle 2 durchsuchen. Und da hängt mein Problem.
Da das sehr große Tabellen sind (ehemalige Migrationslogs und pro log mehr als 800 MB anfallen) könnt ihr euch vorstellen das ich nicht besonders viel lust habe die Teile Manuell auszuwerten^^.


so long und danke schon mal im vorraus

DeMon

3 Antworten

0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Das Problem kann auf verschiedene Weisen angegangen werden. Am besten sagst du uns folgende Dinge:[list]
[*]Feld1 in Tabelle1 hat welchen Datentyp?
[*]"die komplette Tabelle 2 durchsuchen" bedeutet für dich, dass Feld 1 der Tabelle 1 in irgendeinem Feld der Tabelle 2 stehen kann?
[*]Welche Datentypen haben die einzelnen Felder der Tabelle 2?
[*]Wie sind die Daten logisch aufgebaut? U.u. macht es Sinn, mehrere Tabellenfelder als einen Text zu behandeln und diesen zu vergleichen...
[/list]
0 Punkte
Beantwortet von Einsteiger_in (7 Punkte)
Hi,

1. & 3.: Die Datentypen der Felder sind "Text" und zwar bei Tabelle 1 und bei Tabelle 2 da im Grunde zwar nur Zahlen drin stehen aber auch in NICHT gleichbleibender Form (z.B. 1234 und 12_34 oder 12-34 etc.).

2. Richtig, das ist mein Problem

4. Diese geht leider nicht da es sich um einzigartige Inhalte handelt die auch so erhalten bleiben müssen um eine spätere auswertung zu ermöglichen.


Schon mal danke für deine Antwort :)

so long

DeMon
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Dann wird das eine relativ einfache Sache:

SELECT t1.feld1, t2.*
FROM tabelle1 t1, tabelle2 t2
WHERE t1.feld1= t2.feld1
OR t1.feld1= t2.feld2
OR t1.feld1= t2.feld3
OR t1.feld1= t2.feld4
OR t1.feld1= t2.feld5
OR t1.feld1= t2.feld6...


Inwieweit man das jetzt automatisieren kann, hängt wiederum von anderen Faktoren ab. Wozu vergleichst du überhaupt - was ist dein Ziel?
...