MS SQL Innhalt von zwei Tabellen vergleichen

BULLDOG

Neuling
Thread Starter
Mitglied seit
10.03.2006
Beiträge
541
Hallo Community

wahrscheinlich blamiere ich mich mit meiner Frage, aber:confused:

ich wäre Froh wenn mir jemand ne menge Arbeit ersparen würde:rolleyes:

Wie kann ich den Ihnalt von zwei Tabellen vergleichen??
"Gebe mir alle die aus, die aus TabelleA SpalteA3 nicht identisch mit TabelleB SpalteB2 sind"

zur visualiserung

TabelleA

SpalteA1--------SpalteA2---------SpalteA3

TabelleB

SpalteB1--------SpalteB2--------SpalteB3

Alle die rot markierten ausgeben die nicht identisch sind


Probiert habe ich:

SELECT * FROM TabelleA, TabelleB WHERE TabelleA.spalteA3 != TabelleB.spalteB2
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wenn ich deine Frage richtig verstanden haben sollte das hier funktionieren:

SELECT * FROM TabelleA WHERE spalteA3 NOT IN (SELECT spalteB2 FROM TabelleB);
 
Danke das du Dir zeit genommen hast.

Aber das hab ich auch schon versucht. Nur das NOT IN gibt mir aus "was kommt nicht vor" ich will aber "Gebe alle die aus die nicht identisch sind"

:wink: schönen Abend noch
 
Zuletzt bearbeitet:
Da wäre die Frage: Nicht identisch mit was?

Daten in einer Tabelle haben ja keine festgelegte Ordnung, die werden dir in einer wilkürlichen Reihenfolge ausgegeben wenn du kein ORDER BY angibst (i.d.R. alphabetisch sortiert nach dem Primany Key).

Haben die beiden Tabellen einen gemeinsamen eindeutigen Schlüssel über den du die Zeilen der einen Tabelle jeweils einer Zeile der anderen Tabelle zuordnen könntest?
 
Zuletzt bearbeitet:
Ich versuch mich noch mal besser auszudrücken sorry

Tabelle-->Essen

SpalteNameEssen--------SpalteFarbe---------SpalteArtEssen
ApfelR-------------------Rot-----------------Frucht
ApfelG-------------------Grün----------------Frucht
ApfelRG------------------Rot Grün------------Gemüse


Tabelle-->Rezepte

SpalteNameRezepte--------SpalteArtRezepte--------SpalteDauer
Apfelkuchen---------------Frucht------------------10
Apfelkompot---------------Frucht------------------5


Also nun vergleiche Tabelle Essen mit Tabelle-Rezepte.
Gebe mir alle NamenEssen,ArtEssen aus die nicht den identischen Eintrag haben wie ArtEssen verglichen mit ArtRezepte

In diesem Fall

SpalteNameEssen------SpalteFarbe---------SpalteArtEssen
ApfelRG-------------------RotGrün-----------------Gemüse




Ich hoffe nun versteht man meine Frage!!
 
Zuletzt bearbeitet:
Also ehrlich gesagt, ich versteh's grad gar nicht.

Müsste bei deinem Beispiel nicht die Zeile (ApfelRG/Rot Grün/Gemüse) die sein, die keinen Eintrag in Rezepte hat, denn Gemüse taucht da ja nicht auf?

Oder anders gefragt, was hat (ApfelR/Rot/Frucht) nicht, was (ApfelG/Grün/Frucht) hat? Ich seh beim besten Willen nicht wieso die eine Zeile keinen identischen Eintrag haben soll, die andere aber schon? Es gibt ja zwei Frucht Einträge in Rezepte.
 
weil ich die Spalten ArtEssen und ArtRezepte vergleich
und in der einen steht Frucht und in der anderen Gemüse.

Und alle zeilen die dort nicht identisch sind möchte ich ausgeben lassen!!
 
Ja aber dann müsste doch die Zeile in der Gemüse steht diejenige sein, die nicht identisch ist. Wie kommst du dann sattdessen im Ergebnis in deinem Beispiel auf eine Zeile in der Frucht steht?

Ist dein Beispiel so wirklich richtig?
 
Zuletzt bearbeitet:
Ah, ok. Jetzt ergibt es wesentlich mehr Sinn. Ich nehm mal an, das da jetzt "Rot" statt "Rot Grün" im Ergebnis steht ist ein Typo, denn die Zeile die da jetzt steht gibts ja in der Tabelle gar nicht

Allerdings würde die Zeile mit dem Gemüse auch mit dem "NOT IN" Select ausgegeben werden, welches ich oben gepostet hatte. Darum ist mir immer noch nicht ganz klar was du wirklich genau anderes machen willst? Kannst du vielleicht das Beispiel so erweitern, dass mit dem "NOT IN" Select ein falsches Ergebnis rauskommt?
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh