Spalten in 2 Tabellen vergleichen

Lh_J

Grünschnabel
Hallo alle.

Wie angekündigt, habe ich ein neues Problem.
Und zwar habe ich 2 Tabellen, die beide zum großteil gleiche Informationen aufweisen, aber eben auch Unterschiede.
Es ist wichtig, das ich diese Unterschiede herausziehe.
Was vorher wunderbar geklappt hat, scheint jetzt irgendwie nicht richtig zu funktionieren.
Das mag daran liegen, das sich das Format der beiden, zu vergleichenden Spalten unterscheidet.
In den beiden Spalten stehen zwar jeweils namen, in der einen jedoch, sind an die Namen noch andere Informationen geknüpft.
Man kann sich das so vorstellen:
In der einen Tabelle ist der Name Hans Peter und in der andern ist der Name Hans Peter.Steinerweg.13 .. so als Beispiel.
Jetzt müsste ich doch eigentlich eine Wildcard setzen, damit er alles ab dem Hans Peter beim vergleichen ignoriert, und genau da liegt mein Problem.
Wie genau setze ich die Wildcard ?

Mein Vergleich sieht so aus:

PHP:
$sql = "SELECT * FROM `tabelle2` WHERE name NOT IN (SELECT name FROM `tabelle1`)

Das ist natürlich ohne Wildcard.
Die Variante mit Wildcard sieht dann so aus, das ich hinter einer der beiden Spaltenangaben ("name") ein % packe und das ganze in Anführungszeichen setze.
Sieht dann so aus: 'name%'
Funktioniert aber nicht.
Je nachdem, ob ich tabelle2 mit tabelle1 vertausche, gibt er mir einfach die komplette Tabelle aus, gegen die ich vergleichen lasse.
Und wenn ich nur "name" stehenlasse, bekomme ich zwar ein vielversprechendes Ergebnis, das aber nicht stimmen kann.. ich bekomme auch nur ca. 50 Ergebnisse.
Denn es ist immer gleich, irgendwie, auch wenn ich etwas an der Datenbank verändere und Einträge hinzufüge.. es ist immer gleich.. da stimmt also auch was nicht.
Tabelle 1 ist 911 Zeilen lang und Tabelle 2 ist 670 Spalten lang.. 50 Ergebnisse bei einem Abgleich kann also sowieso schonmal nicht stimmen.

Könnt ihr mir da helfen ?
 
Wird der Eintrag in Tabelle 1 und 2 gleichzeitig erstellt oder wie geht das Eintragen ansich von statten?

mfg Spikaner
 
Oh mein Gott du solltes dich mal mit Datenbanken beschäfftigen.Redunazen sind immer so weit wie möglich in einer Db zu vermeiden.

Sorry aber du solltes deinen Datenbankaufbau komplett neu machen so wie der momentan ist führt das später oder früher nur in eine Katastrophe rein.

Beschäftige dich mal mit den Beziehungen. Denn für dein vorhaben benötigst du eine m/n Beziehung.Dann gibst nacher auch nicht so fälle wo man mehrer Tabllen vergleichen muß.

Mfg Splasch
 
Zuletzt bearbeitet:
@Spikaner

Hm ?
Das eintragen ?
Du meinst, wie die Daten zustande gekommen sind ?
Die Tabellen entspringen beide aus unterschiedlichen Tools, in denen ich einen Report
generiert habe.
Die erste ist eine Mastertabelle, sozusagen eine Referenz.
Die zweite Tabelle ist auch ein in SQL importierter Report aus einem Tool.
Nun kann es aber sein, das ein paar Daten aus Tabelle 2 gar nicht in der Referenztabelle enthalten sind, weshalb ein Abgleich und dann eine manuelle überprüfung erforderlich ist.
Normalerweise müssten so ziemlich alle Informationen aus Tabelle 2 auch in Tabelle 1 vorhanden sein, das ist aber nicht 100% der Fall und eben genau die, die nicht in der Referenztabelle, dafür aber in Tabelle 2 zu finden sind, gilt es heraus zu ziehen.
So einen Abgleich gegen die Referenztabelle muss ich danach noch mit vielen weiteren Tabellen machen.

Aber ich frage mich, warum du das wissen willst.. das spielt doch eigentlich keine Rolle.. ?

@splasch
Oh entschuldigung. :suspekt:
Ich dachte das hier sei ein Forum, in dem auch Anfänger fragen stellen dürfen.
Was laberst du von redundanz ?
Wer will hier redundanz ?
Und in welche Katastrophe soll das "reinführen" ?
Deine lieblich gewählten Worte zeigen mir, das du nicht den geringsten Schimmer hast, was ich da genau vorliegen habe und welchem Zweck es dient (wie auch, habe ich nie erwähnt, allein deshalb ist dein Post schon eine Zumutung).
Heh, du bist echt ein witziges Kerlchen
 
@splasch
Oh entschuldigung.
Ich dachte das hier sei ein Forum, in dem auch Anfänger fragen stellen dürfen.
Was laberst du von redundanz ?
Wer will hier redundanz ?

Das liegt wieder mal daran das du null ahnung von einer Datenbank hast.Aber versucht mitten drin einzusteigen. Wir haben alle mal angefangen zu Lehrnen aber man muß von vorne Lehrnen man kann nicht gleich mit einer fortgeschritten stufe anfangen.
Darum verstehst du auch viele meiner argunmente nicht.Ich hab bis jetzt jeden weitergeholfen der das in einen vernüftigen Rahmen angeht.

Mitterweillen wurde das ganze Thema auch bereits verschoben weil dein Problem nicht bei Php liegt sondern rein bei Sql bwz. Datenbankaufbau.

Redunaz ist ein Fachausdruck und bedeutet nix anderes als wiederholungen von ein und dem selben wort.Was ja bei dir des öfterene vorkommt.
Man sollte die Datenbank so gestallten das möglich nur in 1 tabele 1 mal das selbe wort vorkommt alles andere ist eine Redunaz.

Und in welche Katastrophe soll das "reinführen" ?

Das kann ich dir genau sagen. Es fängt damit an das alles extrem langsam wird.Und führt dann dazu das du ein time out bekommt. Also eine rückmeldung vom Server das die verabeitung zu lange gedauert hat und du bekommst keine ausgabe mehr.
Weiteres macht dir das ganze nacher noch viele Probleme bei etwas schwieriegeren Sql abfragen vorallen wenn abfragen erfolgen über mehrer Tabbelen (3 bis 4 tabellen oder mehr)

Wir und ich helfen dir gern weiter aber als ersten Schritt mußt du mal einsehen das man eben nicht mitten drin mit Null ahnung anfagen kann.

Mfg Splasch
 
Zuletzt bearbeitet:
Okay, dann wende ich mich eben an meinen Kumpel.
Das geht zwar nicht von der Arbeit aus, muss ich dann halt privat mit ihm besprechen.
Naja... dafür kann er mir wenigstens helfen.

Ich weiß ganz genau, das es problemlos machbar ist.
Deine Argumentation fliegt so an mir vorbei, weil du 0 Überblick über die eigentlich Daten hast.
Was du da betreibst ist pure Spekulation und damit keine Diskussionsgrundlage.

Thema ist hiermit erledigt.
 
Zurück