# 2 Tabellen abgleichen?



## Grappa (30. März 2004)

Ich steh auf dem Schlauch, bin Mysql-Anfänger:
Ich habe 2 Tabellen mit je 2 Spalten: Produkt und Preis.
In der  Tabelle A (mit anderen Preisen, aber gleichen Produkten) sind 500 Datensätze in der Tabelle B 1000 Datensätze. Die Produkte die es bei A gibt es alle auch bei B, aber eben mit anderem Preis. 
Nun möchte ich alle Daten von Tabelle B ausgeben, für die es keine Entsprechung in Tabelle A gibt. Ich habe mit Join experementiert, aber ich kriegs nicht hin. Hat jemand eine Tip für einen Looser wie mich? 

Grappa


----------



## Norbert Eder (31. März 2004)

Nachdem es im MySQL keine UNIONs gibt, probier mal das:


```
SELECT *
FROM  B
WHERE B.produkt Not in (Select A.produkt FROM  A)
```

mfg
Nitro

PS: Performant ises halt nicht.


----------



## Grappa (31. März 2004)

> _Original geschrieben von nitronic _
> *Nachdem es im MySQL keine UNIONs gibt, probier mal das:
> 
> *
> ...



Danke! Performant muß es diesmal nicht sein.

Grappa


----------



## Ste-Re (19. September 2007)

Hallo,

ich greif mal die alte Frage auf, da ich grad das gleiche Problem hab. Der Unterschied bei mir ist nur, dass ich 2 Tabellen mit je ca 25 Spalten und 15.000 - 20.000 Datensätzen habe, von denen maximal 500 in beiden Tabellen vorkommen sollten. Ich suche jetzt einen möglichst performanten Weg die Ursprüngliche Tabelle A abzüglich der in B enthaltenen Datensätze anzuzeigen. 
Bisher wurde der Abgleich über Excel und einen sverweis gelöst - was aber verdammt lang dauert. Mein Gedanke war es jetzt das ganze in eine Access DB zu importieren und den Abgleich dort machen zu lassen. 
Der hier gezeigt Weg geht zwar schon um ein Vielfaches schneller als die bisherige Lösung, aber vielleicht wisst ihr ja noch was besseres.


----------



## bastee (19. September 2007)

Performanter wird es, wenn nur indizierte Felder verglichen werden, am besten ist es (zumindest in mysql), wenn die verglichenen Felder den gleichen Datentyp besitzen.


----------



## Ste-Re (19. September 2007)

bastee hat gesagt.:


> Performanter wird es, wenn nur indizierte Felder verglichen werden, am besten ist es (zumindest in mysql), wenn die verglichenen Felder den gleichen Datentyp besitzen.



OK, klingt logisch. Konkret geht es um Adressen. Diese enthalten u.A. E-Mails. Diese kommen als Index in Frage, jedoch nicht als Primärschlüssel, da Adressen a la info@ mehreren Personen zugeordnet sein können. Was den gleichen Typ angeht, so ist dies gewährleistet. Ich importiere die Daten aus Excel via C&P. Dazu hab ich zunächst eine Tabelle in Access eingerichtet (A) und diese dann kopiert (B) (nur Struktur). Damit sollten die Felder ja gleich sein.


----------

