Navigation

Beispiele

Beispiele

Wie bekommt man nun alle Datensätze aus einer Tabelle, die nicht in einer anderen Tabelle sind?

Dafür gibt es 2 Vorgehensweise, entweder mit einem In()-Operator und einer Unterabfrage oder mit einem JOIN und einer Prüfung auf Null:

SELECT
    *
FROM
	Tabelle
WHERE
	ID Not In(SELECT ID FROM Tabelle2)



Oder

SELECT
	Tabelle1.*
FROM Tabelle 1
	LEFT JOIN
		Tabelle2 ON Tabelle1.ID = Tabelle2.ID
WHERE
	Not Tabelle2.ID Is Null





Angenommen, man hat 2 gleiche Tabellen und möchte nun wissen, in welchem Datensatz der Tabelle1 etwas anderes steht, als in einem Datensatz der Tabelle.

SELECT
	Tabelle1.*
FROM Tabelle1
	Tabelle2 ON Tabelle1.ID = Tabelle2.ID
WHERE
		Tabelle1.Feld1 <> Tabelle2.Feld1
	OR
	    Tabelle1.Feld2 <> Tabelle2.Feld2
	OR
	    Tabelle1.Feld3 <> Tabelle2.Feld3





Wie sieht zum Beispiel eine laufende Nummer aus?

SELECT
	*,
	(SELECT ID FROM Tabelle AS tblTemp WHERE tblTemp.ID < Tabelle.ID)
FROM
	Tabelle

Und wie könnte man jetzt zum Beispiel die Summe aus dem aktuellen Wert und dem vorherigen bilden:

SELECT
	Feld1 +
	(SELECT Feld1 FROM Tabelle AS tblTemp WHERE tblTemp.ID < Tabelle.ID)
FROM
	Tabelle



Eine Beispieldatei findet ihr hier.