phpbar.de logo

Mailinglisten-Archive

Differenzmege derDatensätze zweier Tabellen ermitteln

Differenzmege derDatensätze zweier Tabellen ermitteln

Jan Kuehl jan.kuehl at software-tomography.com
Die Jul 15 16:49:36 CEST 2003


Die Loesung laesst sich mit 2 Statements schreiben, die in einer Tablle 
landen:

SELECT tbl_a.*
FROM tbl_a LEFT JOIN tbl_b
      ON tbl_a.sp1 = tbl_b.sp1
      AND tbl_a.sp2 = tbl_b.sp2
WHERE tbl_b.sp1 IS NULL

SELECT tbl_b.*
FROM tbl_b LEFT JOIN tbl_a
      ON tbl_a.sp1 = tbl_b.sp1
      AND tbl_a.sp2 = tbl_b.sp2
WHERE tbl_a.sp1 IS NULL

ramm at net-and-works.de schrieb:
> Hi @all,
> 
> 
> wie kann ich bei einer MySQL Datanbank (Version <= 4.0 bzw. keine
> SUBQUERIES wie auch UNION, MINUS ...) herausfinden, welche Datensätze bei
> zwei Tabellen unterschiedlich sind. Ich kann dabei keinen Schlüssel
> verwenden.
> 
> 
> Eine Spalte kann ich mit dem LEFT/RIGHT Outer Join selectieren und dann die
> nicht existenten Werte auf NULL prüfen.
> Was aber ist mit zwei oder mehr Spalten, deren Werte schon existieren, nur
> aber nicht gemeinsam in einem Datensatz (s.u.).
> 
> 
> 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?
> 
> 
> 
> tbl_a
> +---+---+
> |sp1|sp2|
> +---+---+
> |p1 |a1 |
> |p1 |a2 |
> |p2 |a1 |
> |p3 |a3 |
> |p2 |p2 |
> 
> 
> tbl_b
> +---+---+
> |sp1|sp2|
> +---+---+
> |p1 |a1 |
> |p1 |a2 |
> |p2 |a1 |
> |p3 |a3 |
> 
> 
> Ergebnis der Selektion soll sein:
> +---+---+
> |p2 |p2 |
> +---+---+
> 
> 


-- 
Software-Tomography - we make the invisible visible!
Jan Kuehl
Software-Tomography GmbH
Karlstr.7
D-03044 Cottbus
e-Mail: jan.kuehl at software-tomography.com
http://www.software-tomography.com
Phone:  +49 (0355) 4945077
----------------------------

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


php::bar PHP Wiki   -   Listenarchive