Das ist, was für Outer-Joins sind (unter anderem):
SELECT COUNT(*)
FROM FIRST_TABLE t1
LEFT OUTER JOIN SECOND_TABLE t2
ON t2.INFOID = t1.ID
WHERE t2.ID IS NULL
Da SECOND_TABLE.ID der Primärschlüssel ist, kann in der Tabelle NULL nicht NULL sein, und daher, wenn SECOND_TABLE.ID als NULL im Produkt des Outer Joins angezeigt wird, bedeutet dies, dass keine SECOND_TABLE-Zeile gefunden wurde.
Für zukünftige Referenz - ich schlage vor, dass Sie ID
nicht als Spaltenname verwenden. Dies kann sehr verwirrend sein, wenn Sie 30 Tabellen haben, die alle ID
als Primärschlüssel haben. Wenn Sie ID als primären Schlüsselnamen für alle Ihre Tabellen verwenden, bedeutet dies außerdem, dass alle Fremdschlüsselspalten einen anderen Namen als die Schlüsselspalte haben müssen, auf die sie sich beziehen. Dies führt wiederum zu Verwirrung. Stattdessen schlage ich vor, dass Sie ID_
+ den Namen der Tabelle verwenden - daher könnte der Primärschlüssel auf FIRST_TABLE ID_FIRST_TABLE
sein und der Primärschlüssel auf SECOND_TABLE könnte ID_SECOND_TABLE
lauten. Auf diese Weise erhält jede Tabelle einen eindeutigen Primärschlüsselspaltennamen - und wenn Sie eine Spalte haben müssen, sagen wir SECOND_TABLE, die sich auf FIRST_TABLE bezieht, wäre der Spaltenname auf SECOND_TABLE ID_FIRST_TABLE
, was sofort den Zweck verdeutlicht der Spalte ist und auf welche Tabelle es verweist. Nur ein Gedanke.
Viel Glück.