SQL查询问题,跪求答案

来源:百度知道 编辑:UC知道 时间:2024/06/06 08:52:17
select
[DId],
[Types],
[Name],
[Exhibitor],
[SN],
[Model],
[ZtfId],
[RemarksOne],
[RemarksTwo]
FROM Device WHERE Device.ZtfId IN (SELECT DId FROM DeviceZY WHERE (XZtfId = 'xx'))
Left join
select
[DId],
[Region] ,
[ProId] ,
[YZtfId],
[RemarksTwo],
[Times]
FROM DeviceZY WHERE (XZtfId = 'xx')
on Device.DId=DeviceZY.DeviceZY.DId
错误提示
消息 156,级别 15,状态 1,第 12 行
关键字 'Left' 附近有语法错误。
消息 156,级别 15,状态 1,第 21 行
关键字 'on' 附近有语法错误。

1、Left join 前后两个表要用括号分别括起来
2、Device.DId=DeviceZY.DeviceZY.DId ???等于号右边是什么
3、我还是觉得改写成这样比较好
select a.[DId],a.[Types],a.[Name],a.[Exhibitor],a.[SN],
a.[Model],a.[ZtfId],a.[RemarksOne],a.[RemarksTwo],
b.[Region],b.[ProId],b.[YZtfId],b.[RemarksTwo]as RemarksTwo2, b.[Times]
from Device a Left join (select * from DeviceZY where XZtfId = 'xx' )b on a.Did=b.Did
where a.ZtfId IN (SELECT DId FROM DeviceZY WHERE (XZtfId = 'xx'))

select
a.DId,
a.Types,
a.Name,
a.Exhibitor,
a.SN,
a.Model,
a.ZtfId,
a.RemarksOne,
a.RemarksTwo
FROM Device a
Left join
(select
b.DId,
b.Region ,
b.ProId ,
b.YZtfId,
b.RemarksTwo,
b.Times,
b.XZtfId
FROM DeviceZY) b
on a.DId=b.DId
WHERE a.ZtfId IN (SELECT DId FROM DeviceZY WHERE XZtfId = 'xx') and b.XZtfId = 'xx'

你left和on前面的字段都用'号,导致把sql语句给弄乱了。把'转义或者用现成的模