Ich habe die folgende AbfrageWarum funktioniert LINK OUTER JOIN nicht?
SELECT COUNT(*) FROM Samples
Rückkehr 628
.
Während die folgende Abfrage
SELECT * FROM
(
SELECT
sa.*,
tagLists.tagNames AS tagNames,
tagLists.ProjectID AS ProjectID
FROM Samples sa
LEFT OUTER JOIN TagLists tagLists
ON sa.spotID = tagLists.taggedItemID
AND 6 = tagLists.taggedItemType
) ex
WHERE ex.ProjectID IS NULL
kehrt leere Tabelle.
Mit anderen Worten, äußere Abfrage
SELECT
sa.*,
tagLists.tagNames AS tagNames,
tagLists.ProjectID AS ProjectID
FROM Samples sa
LEFT OUTER JOIN TagLists tagLists
ON sa.spotID = tagLists.taggedItemID
AND 6 = tagLists.taggedItemType
enthält keine jede Zeile mit ProjectID
null ist beizutreten.
Warum? Ist LEFT OUTER JOIN
nicht garantiert, dass alle Zeilen aus der linken Tabelle angezeigt werden sollen?
UPDATE
Leider gibt es natürlich keine nicht-null Zeilen in tagLists
tatsächlich verbunden.
UPDATE 2
Sorry, Jungs Ich bin ein Narr es wirklich nicht-null Zeilen waren ich nicht war egal ...
Sie haben uns keine Daten gezeigt, was diesen Kommentar spekulativ macht, aber wenn jeder Datensatz in 'Samples' mit einem Datensatz in' TagLists' übereinstimmt, dann wird 'ex.ProjectID' niemals' NULL' sein, was geben würde Ihr aktuelles Ergebnis. –