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.msgId
和MailAssignments.msgId
。但是,您不应该期望名为msgId
的两列。相反,DBMS应该消除这些列的歧义。这是标准SQL,BTW的要求。
IIRC Access将重命名列列以消除它们的歧义。这可以解释为什么在结果中没有命名为msgId
的列。