Hi!
Tabelle1
Name Straße IDTabelle2
PLZ Nationalität IDDie Tabelle2 ist eine art erweiterung für Tabelle eins. Sie sind durch die ID verknüpft.
Was genau versprichst du dir von dieser Aufteilung? Und wie realisierst du, dass beim Einfügen von Datensätzen in die eine Tabelle nicht bereits vorhandene IDs der anderen Tabelle versehentlich vergeben werden?
Mein Problem ist, ich möchte gerade alle Werte aus Tabelle2 angezeigt bekomme die eine ID haben, die nicht mit der aus der Tabelle1 übereinstimmen.
Das kannst du durch eine Selektion von Tabelle2 erreichen, der du per LEFT JOIN die Tabelle 1 anbindest. Du bekommst dann erst einmal grundsätzlich alle Datensätze aus Tabelle 2. Wenn es kein Pendant in Tabelle1 gibt, sind deren Felder NULL, also: ... WHERE Tabelle1.ID IS NULL
SELECT PLZ Nationalität, tabelle2.ID
FROMTabelle2
INNER JOIN Tabelle1 ON Tabelle2.id = Tabelle1.ID
WHERE Tabelle1.ID != Tabelle2.id;Was ist daran falsch!!! kann mir da jemand bitte einen Tipp geben..
Daran ist falsch, dass du mit dem INNER JOIN nur die Datensätze ansprichst, die in beiden Tabellen enthalten sind. Mit der WHERE-Bedingung schließt du dann eben diese Datensätzt wieder aus. Der LEFT JOIN ist übrigens ein OUTER JOIN[*]. Solche Joins beziehen auch die außerhalb der Schnittmenge der beiden Tabellen stehenden Datensätze ein.
[*] volle Bezeichnung: LEFT OUTER JOIN. Da LEFT und RIGHT immer nur bei Outer Joins auftreten, kann man das OUTER weglassen.
Lo!