Ich habe jetzt zwei Tabellen, die Daten speichern. Sie sind durch einen ID-Wert verbunden. Wie kann ich alle Werte aus Tabelle eins einschließlich des Masterwerts zurückgeben, selbst wenn Übereinstimmungen vorhanden sind? Hier ist meine grundlegende Abfrage.Links Join Return Joining Wert
Select MFG.mfgname, SS.subsysname
From Manufacturers MFG left join SubSystem SS
On MFG.id = SS.mfgid
Order by MFG.mfgname, SS.subsysname
Hier sind die Tabellen
MFG Table
id mfgname
1 ABB
2 Siemens
3 Vipa
4 Visolux
SubSystem table
id mfgid subsysname
1 1 ABB Drives
2 1 ABB Robots
3 1 Advant OCS
4 2 Simatic S5
5 2 Simatic S7
6 3 Vipa System
Und schließlich werden die Ergebnisse und die gewünschten Ergebnisse.
Results
mfgname subsysname
ABB ABB Drives
ABB ABB Robots
ABB Advant OCS
Siemens Simatic S5
Siemens Simatic S7
Vipa Vipa System
Visolux NULL
Desired Results
mfgname subsysname
ABB NULL
ABB ABB Drives
ABB ABB Robots
ABB Advant OCS
Siemens NULL
Siemens Simatic S5
Siemens Simatic S7
Vipa NULL
Vipa Vipa System
Visolux NULL
die gewünschten Ergebnisse zurückkehren würde auch die ABB, Siemens und Vipa MFG mit einem Null-Subsystem Namen. An diesem Punkt ist es nicht. Hoffe, das hat Sinn gemacht!
Könnte dies ein wenig besser funktionieren, wenn Sie den 'linken Join' zu einem' inneren Join' und den 'Union' zu' union all' ändern, wodurch die Notwendigkeit einer eindeutigen Sortierung vermieden wird? –
Wenn "subsysname" nicht nullfähig ist, können Sie inner join und union all verwenden – JamieD77