我正在尝试连接三个表,我成功连接了两个。
这有效(两个表)
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
- UserName属于Users表
现在,当我尝试添加另一个表时:
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"
如果我只写 UserName
它给出了
"Ambiguous column name 'UserName'."
帮助。
最佳答案
可能 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
错误 “'.' 附近的语法不正确。”在行:
来自别名 HGSQLUsers.UserName
你可以使用它,但在配额中。
我还建议您为每个表使用别名,如下所示 - 对我来说更具可读性
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
关于sql - 使用 Coalesce 时 '.' 附近的语法不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30161819/