C# SQL:连接主键上的表并返回主键

C# SQL:连接主键上的表并返回主键,c#,sql,ms-access,C#,Sql,Ms Access,我正在编写一个C#应用程序,正在使用Access.mdb。我有一个包含电子邮件消息的表和一个包含消息关系的表(每个电子邮件消息可以分配给多个工作组),因此关系表中的行有“msgId”和“teamName”字段 我想从第一个表中获取分配给指定团队的所有消息。我正在使用以下查询: "SELECT * FROM Mails INNER JOIN MailAssignments ON Mails.msgId = MailAssignments.msgId" 但是我猜它不会为我返回msgId,因为表在这

我正在编写一个C#应用程序,正在使用Access.mdb。我有一个包含电子邮件消息的表和一个包含消息关系的表(每个电子邮件消息可以分配给多个工作组),因此关系表中的行有“msgId”和“teamName”字段

我想从第一个表中获取分配给指定团队的所有消息。我正在使用以下查询:

"SELECT * FROM Mails INNER JOIN MailAssignments ON Mails.msgId = MailAssignments.msgId"
但是我猜它不会为我返回msgId,因为表在这个字段上被连接,但是我 我无法识别C代码中的消息


如何使查询为我返回msgId?

在选择中指定字段名称就足够了,或者在要获取所有字段的位置添加表名,请尝试使用此选择列表:

SELECT Mails.* 
FROM Mails INNER JOIN MailAssignments 
ON Mails.msgId = MailAssignments.msgId

对于
Mails.msgId
mailsassignments.msgId
,它应该在结果集中出现两次。但是,您不应该期望有两列名为
msgId
。相反,DBMS应该消除列的歧义。顺便说一句,这是SQL标准的要求

IIRC Access将重命名两个列以消除歧义。这可以解释为什么结果中没有名为
msgId
的列