Mailinglisten-Archive |
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