我有3张桌子,
Transport.Devices,Transport.Conductors,Transport.ConductorDevices,
我在Devices表上应用LeftJoin,所以它也应该显示那些未分配的设备,但它不起作用,为什么?我尝试了右连接并且它工作但是左边不起作用。
Select Transport.ConductorDevices.ID, Transport.ConductorDevices.Device_ID,Transport.ConductorDevices.Conductor_ID,
Transport.Conductors.Name as Conductor, Transport.Devices.TerminalSNO as Terminal
from Transport.ConductorDevices
Inner Join Transport.Devices
ON Transport.Devices.DeviceID=Transport.ConductorDevices.Device_ID
left Join Transport.Conductors
ON Transport.Conductors.ConductorID= Transport.ConductorDevices.Conductor_ID
答案 0 :(得分:2)
左连接!=右连接,左连接确实包括左侧的所有连接,右连接包括右侧的所有连接。在这种情况下,您需要右侧的所有内容。这就是正确的加入对你有用的原因。
答案 1 :(得分:0)
如果您需要所有设备(未分配),您可以从设备启动FROM:
from Transport.Devices
LEFT JOIN Transport.ConductorDevices
ON Transport.Devices.DeviceID=Transport.ConductorDevices.Device_ID
LEFT JOIN Transport.Conductors
ON Transport.Conductors.ConductorID= Transport.ConductorDevices.Conductor_ID