2016-11-10 1 views
0

Ich habe eine SQL-Anweisung ausgeführt, um Daten zurückzugeben, die Anweisung verbindet mehrere andere Tabellen, so dass für die zurückgegebenen Datensätze kann ich die anzeigen Name des Feldes, nicht die ID.SQL: SELECT-Anweisung, um alle Datensätze zurückzugeben, JOIN-Wert ist NULL, Abfrage gibt keine Datensätze zurück

Hier ist Teil der SQL:

SELECT 
    HardwareAsset.HardwareAssetTitle, 
    HardwareAsset.HardwareAssetAssetTag, 
    Department.DepartmentTitle AS HardwareAssetDepartmentTitle, 
    CostCentre.DepartmentTitle AS HardwareAssetCostCentreTitle, 
FROM 
    HardwareAsset 
INNER JOIN 
    Department Department ON (Department.DepartmentID = HardwareAsset.HardwareAssetDepartmentID) 
INNER JOIN 
    Department CostCentre ON (CostCentre.DepartmentID = HardwareAsset.HardwareAssetCostCentreID) 

Mein Problem ist, dass, obwohl die Abfrage erfolgreich ausgeführt wird, weil bestimmte Spalten (dh die oben genannten sind) haben einen Wert von NULL, die Abfrage scheint Keine Datensätze zurückgeben, obwohl Datensätze in der Tabelle vorhanden sind.

Ich habe versucht, wenn Datensätze die Spalten ausgefüllt und Datensätze zeigen. Irgendwelche Ideen?

+2

Versuchen Sie 'LEFT JOIN' anstelle von' INNER JOIN', und es sollte Datensätze zurückgeben, auch wenn keine Übereinstimmung in der zweiten Tabelle vorhanden ist. – beercodebeer

Antwort

5

Wenn Sie INNER JOIN verwenden, muss das Join-Feld wie DepartmentID einen gültigen Datensatz in beiden Tabellen haben. Wenn Sie Datensätze aus Ihrer Haupttabelle zurückgeben wollen, unabhängig davon, ob sie sich in Ihren Join-Tabellen befinden, müssen Sie LEFT JOIN verwenden.

Ändern Sie INNER JOIN zu LEFT JOIN.

+0

Prost Guys! sehr geschätzt, wie Sie wahrscheinlich sagen können, ich bin ziemlich neu in SQL. – TheTechnicalPaladin

Verwandte Themen