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

问题描述:

我正在编写一个C#应用程序并使用Access .mdb。我有一个包含电子邮件消息和一个带有消息关系的表(每个电子邮件消息都可以分配给几个工作小组),因此关系表中的行具有“msgId”和“teamName”字段。SQL:连接主键上的表并返回主键

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

"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.msgIdMailAssignments.msgId。但是,您不应该期望名为msgId的两列。相反,DBMS应该消除这些列的歧义。这是标准SQL,BTW的要求。

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