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