Ich habe die folgenden drei Tabellen, die ich versuche zusammenzufügen und einen Überblick über alle Desktops zu erstellen, und wer auch immer einen ihrer UserID zugewiesen hat.Welche Art von JOIN sollte ich verwenden, um diese Tabellen zu verbinden?
dbo.Users
ID Name Lastname JobTitle
118 Ryan Doe Field Engineer
119 Jessica Braun Technical Consultant
120 Daniel Sous Web developer
121 Amy Amyson Intern
.. etc
dbo.LightDesktops
ID Model MACAddress UserID
1 HP1234 AA:AA:AA:AA:AA:AA 118
2 HP1234 BB:BB:BB:BB:BB:BB 121
3 HP1234 AA:BB:BB:AA:BB:AA NULL
4 HP1234 BB:AA:BB:AA:AA:BB 124
dbo.MediumDesktops
ID Model MACAddress UserID
1 HP12PRO AA:AB:AA:BB:AA:BA 132
2 HP12PRO BB:BA:AB:BA:BB:AA 119
3 HP12PRO AA:BA:BA:AB:AA:BA 123
4 HP12PRO BB:BB:BB:AB:BA:BB 241
ich es geschafft, herauszufinden, wie es von Desktop, zum Beispiel LightDesktops pro Art zu tun:
SELECT * FROM LightDesktops LEFT OUTER JOIN Users ON LightDesktops.UserID = Users.UserID
Das wird mir zeigen einen schönen Überblick über die Licht Desktops mit ihren Informationen sowie wer hat einem zugewiesen, falls vorhanden.
Wenn ich einen Überblick über die Licht Desktops haben möchten, die nicht verwendet werden und deshalb auf Lager kann ich
SELECT * FROM LightDesktops LEFT OUTER JOIN Users ON LightDesktops.UserID = Users.UserID WHERE LightDesktops.UserID IS NULL
tun Wie kann ich die gleichen Ergebnisse erreichen, aber für beide Tabellen mit Informationen von unsere Desktops? Ich habe versucht, eine UNION zu verwenden, habe aber viele doppelte Werte zurückgegeben.
etwas off-topic; Haben Sie in Betracht gezogen, leichte und mittlere Desktops in einem Tisch zusammenzuführen? Sie könnten eine zusätzliche Spalte hinzufügen, um zu identifizieren, welche hell/mittel sind.Der Vorteil dieses Ansatzes ist, dass die Abfragen, die Sie schreiben müssen, vereinfacht werden. –
Können Sie ein Beispiel hinzufügen, welche Spalten Sie in der Ausgabe sehen möchten? –
Der Ratschlag von @ destination-data kann gut sein, aber Sie haben möglicherweise keinen Zugriff auf diese Änderung. Alternativ können Sie 'CREATE VIEW' verwenden, um die Verknüpfungslogik an einer Stelle abzurufen und anschließend die Ansicht in allen nachfolgenden Abfragen zu verwenden. Zu einem späteren Zeitpunkt können Sie die Ansicht möglicherweise umgestalten, um die Ansicht zu entfernen. –