[英]Incorrect syntax near '.' while using Coalesce
I am trying to join three tables, I joined two successfully. 我想加入三张桌子,我成功加入了两张桌子。
This Worked (Two Tables) 这个工作(两个表)
SELECT ImportExportBadFile.ID, ImportExportSettingID,
ImportExportBadFile.UserID,
Coalesce(UserName,'') UserName
FROM
ImportExportBadFile
LEFT OUTER JOIN Users HGSQLUsers ON ImportExportBadFile.UserID = HGSQLUsers.ID
ORDER BY ImportExportBadFile.DateTimeStamp DESC
Now, when I tried to add another Table: 现在,当我尝试添加另一个表时:
SELECT ImportExportBadFile.ID, ImportExportSettingID,
SETT.Name,
ImportExportBadFile.UserID,
Coalesce(UserName,'') HGSQLUsers.UserName
FROM
ImportExportBadFile
LEFT OUTER JOIN Users HGSQLUsers ON ImportExportBadFile.UserID = HGSQLUsers.ID
INNER JOIN ImportExportSettings SETT ON ImportExportBadFile.ImportExportSettingID = SETT.ID
ORDER BY ImportExportBadFile.DateTimeStamp DESC
It gives Error : "Incorrect syntax near '.'."
它给出了错误:“'。'附近的语法不正确。” at line : "Coalesce(UserName,'') HGSQLUsers.UserName"
at line:“Coalesce(UserName,'')HGSQLUsers.UserName”
If I write only UserName
It gives 如果我只写
UserName
它给
"Ambiguous column name 'UserName'."
“不明确的列名'UserName'。”
Help. 救命。
Probably UserName
column exists in both tables, you need to specify from which table do want to take UserName
as below 可能两个表中都存在
UserName
列,您需要指定从哪个表中获取UserName
,如下所示
SELECT ImportExportBadFile.ID, ImportExportSettingID,
SETT.Name,
ImportExportBadFile.UserID,
Coalesce( HGSQLUsers.UserName ,'') as "HGSQLUsers.UserName"
FROM
ImportExportBadFile
LEFT OUTER JOIN Users HGSQLUsers ON ImportExportBadFile.UserID = HGSQLUsers.ID
INNER JOIN ImportExportSettings SETT ON ImportExportBadFile.ImportExportSettingID = SETT.ID
ORDER BY ImportExportBadFile.DateTimeStamp DESC
Error "Incorrect syntax near '.'." at line :
错误
"Incorrect syntax near '.'." at line :
"Incorrect syntax near '.'." at line :
comes from alias HGSQLUsers.UserName
you can use it but in quotas. "Incorrect syntax near '.'." at line :
来自别名HGSQLUsers.UserName
你可以在配额中使用它。
I also recommend you to use aliases for every table as below - is more readable for me 我还建议你为每个表使用别名,如下所示 - 对我来说更具可读性
SELECT I.ID, I.ImportExportSettingID,
SETT.Name,
I.UserID,
Coalesce( HGSQLUsers .UserName ,'') as "HGSQLUsers.UserName"
FROM ImportExportBadFile I
LEFT OUTER JOIN Users HGSQLUsers ON I.UserID = HGSQLUsers.ID
INNER JOIN ImportExportSettings SETT ON I.ImportExportSettingID = SETT.ID
ORDER BY I.DateTimeStamp DESC
Actually this worked for me in trial and error: 实际上,这在试验和错误中对我有用:
SELECT ImportExportBadFile.ID, ImportExportSettingID,
SETT.Name,
ImportExportBadFile.UserID,
Coalesce(HGSQLUsers.UserName,'')
FROM
ImportExportBadFile
INNER JOIN ImportExportSettings SETT ON ImportExportBadFile.ImportExportSettingID = SETT.ID
LEFT OUTER JOIN Users HGSQLUsers ON ImportExportBadFile.UserID = HGSQLUsers.ID
ORDER BY ImportExportBadFile.DateTimeStamp DESC
but @Parado's Answer is more specific and explaining. 但是@Parado的答案更具体和解释。
Thank you. 谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.