2012-03-07 48 views
0

我正在编写一个C#应用程序,并使用Access .mdb。我试图简单地通过电子邮件和带有消息关系的表格(每个电子邮件消息可以分配给几个工作人员团队)进行JOIN表。不幸的是,我得到这个简单的查询错误,并不明白为什么。任何帮助赞赏。SQL:简单JOIN给出错误

string queryGetMails = " SELECT * FROM Mails JOIN MailAssignments ON Mails.msgId = MailAssignments.msgId "; 

而我得到的错误是:

System.Data.OleDb.OleDbException: Syntax error in FROM clause. 
+4

您需要限定连接的类型 - “JOIN”本身不适用于Access的有效语法。根据需要使用用户“INNER JOIN”或“OUTER JOIN”。 – Oded 2012-03-07 09:37:43

回答

2

我会指定LEFT JOIN,INNER JOIN等.. 想你的查询与访问接口,并没有左不喜欢你的语法, INNER,加入前的权利。

就像一个侧面说明。使用Access的优点之一是可以轻松地进行测试来纠正这类错误。

+0

但是这篇文章说INNER JOIN和JOIN是一样的,所以我认为JOIN也是允许的:[http://www.w3schools.com/sql/sql_join_inner.asp](http://www.w3schools.com/sql/ sql_join_inner.asp) – Val 2012-03-07 09:48:01

+0

我试过INNER JOIN,但它也给我一个错误:'System.IndexOutOfRangeException:msgId'。似乎这是因为我加入了这个字段的表(msgId),所以它在结果表中消失。但我如何让它留在那里? – Val 2012-03-07 09:49:42

+0

我想这是另一个问题。 – Steve 2012-03-07 09:52:56