phpbar.de logo

Mailinglisten-Archive

Re: Differenzmege der Datensätze zweier Tabellen ermitteln

Re: Differenzmege der Datensätze zweier Tabellen ermitteln

Markus Stanczyk markus.stanczyk at gmx.de
Die Jul 15 16:43:53 CEST 2003


Hallo,

> Beispiel:
> Bis auf die letzte Zeile sind die beiden Tabellen indentisch.
> Wie kann ich herausbekommen (selektieren), dass ein Datensatz nicht in der
> anderen Tabelle enthalten ist?

das ist mein Lösungsvorschlag:

Ich habe Deine Bespieltabelle um das Feld 'laufende Nummer' (lfd_nr)
erweitert
in der Hoffnung, daß in Deinen Tabellen Primärschlüssel vergeben sind.

1.
Ich erstelle eine neue Tabelle mit dem Inhalt der ersten Tabelle:
Zusätzlich erweitere ich diese Tabelle um ein weiteres Feld (tbl) in das
die Herkunft der Daten eingetragen wird.
In diesem Falle ist es 'tbl_a'.

CREATE TABLE tbl_dp SELECT lfd_nr, sp1, sp2, 'tbl_a' AS tbl FROM tbl_a;

2.
Ich füge die Daten der zweiten Tabelle in die gerade erstellte
Tabelle ein.
In das sobeben neu erstellte Feld 'tbl' trage ich erneut die Herkunft
der Daten ein: 'tbl_b'

INSERT INTO tbl_dp SELECT lfd_nr, sp1, sp2, 'tbl_b' FROM tbl_b;

3.
Jetzt lasse ich mir alle Datensätze anzeigen, die nur einmal in der Tabelle
vorkommen.

SELECT tbl, lfd_nr, concat(sp1, sp2), COUNT(CONCAT(sp1, sp2)) AS dp
 FROM tbl_dp
 GROUP BY concat(sp1, sp2)
 HAVING dp = 1;

Man kann jezt ablesen, in welcher Tabelle (tbl) der Datensatz vorhanden ist.

Ich hoffe, ich habe alle Klarheiten beseitigt ;-)

Gruß

Markus Stanczyk

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive