Sql server ms access/sql server语法(我猜)
此查询:Sql server ms access/sql server语法(我猜),sql-server,ms-access,outer-join,Sql Server,Ms Access,Outer Join,此查询: SELECT sentmails.[VersandDatum], sentmails.[DatumMailGeplant], mailintervals.[Interval], definitions.[Subject], users.[Name], sentmails.[MailArt], Objekte.[Name], sentmails.[Erledigt],
SELECT sentmails.[VersandDatum],
sentmails.[DatumMailGeplant],
mailintervals.[Interval],
definitions.[Subject],
users.[Name],
sentmails.[MailArt],
Objekte.[Name],
sentmails.[Erledigt],
sentmails.[ID]
FROM Objekte
RIGHT JOIN (users RIGHT JOIN (definitions RIGHT JOIN (mailintervals RIGHT JOIN (sentmails) ON mailintervals.ID=sentmails.Intervall) ON definitions.ID=sentmails.Noti_ID) ON users.UID=sentmails.Funktion) ON Objekte.OId=sentmails.Objekt_ID
…在ms access qbe中工作正常,但在sql server中,它会返回“不正确的语法(')””错误。我真想知道为什么:
- 连接需要放在括号中吗
- sql server中不再有外部联接
- 需要更多的括号吗
JOIN
语法不正确。您应该单独连接每个表,而不使用嵌套的括号。您可能需要以下内容:
SELECT sentmails.[VersandDatum]
, sentmails.[DatumMailGeplant]
, mailintervals.[Interval]
, definitions.[Subject]
, users.[Name]
, sentmails.[MailArt]
, Objekte.[Name]
, sentmails.[Erledigt]
, sentmails.[ID]
FROM Objekte
RIGHT JOIN sentmails ON Objekte.OId = sentmails.Objekt_ID
RIGHT JOIN users ON users.UID = sentmails.Funktion
RIGHT JOIN definitions ON definitions.ID = sentmails.Noti_ID
RIGHT JOIN mailintervals ON mailintervals.ID = sentmails.Intervall
.MS Access的联接语法略有不同。改用这个:
SELECT
sentmails.[VersandDatum],
sentmails.[DatumMailGeplant],
mailintervals.[Interval],
definitions.[Subject],
users.[Name],
sentmails.[MailArt],
Objekte.[Name],
sentmails.[Erledigt],
sentmails.[ID]
FROM Objekte
RIGHT JOIN sentmails ON Objekte.OId=sentmails.Objekt_ID
RIGHT JOIN definitions definitions.ID=sentmails.Noti_ID
RIGHT JOIN mailintervals ON mailintervals.ID=sentmails.Intervall
RIGHT JOIN users ON users.UID=sentmails.Funktion
只需尝试sqlstr.Replace(“右连接”、“右外部连接”).Replace((“,”).Replace(“),”)似乎效果更好