我正在编写一个C#应用程序,并且正在使用Access .mdb。我有一个包含电子邮件消息的表和一个包含消息关系的表(每个电子邮件消息可以分配给几个工作组),因此关系表中的行包含“msgId”和“teamName”字段。
我想从第一个表中获取分配给指定团队的所有消息。我正在使用以下查询:
"SELECT * FROM Mails INNER JOIN MailAssignments ON Mails.msgId = MailAssignments.msgId"
但是它不会为我返回msgId,我想,因为这些表已加入此字段,但后来我 我无法在C#代码中识别消息。
如何让查询为我返回msgId?
答案 0 :(得分:2)
在选择中指定字段名称就足够了,或者在要获取所有字段的位置添加表名,请尝试使用此选择列表:
SELECT Mails.*
FROM Mails INNER JOIN MailAssignments
ON Mails.msgId = MailAssignments.msgId
答案 1 :(得分:0)
结果集中应显示两次,分别为Mails.msgId
和MailAssignments.msgId
。但是,您不应期望两列名为msgId
。相反,DBMS应该消除列的歧义。这是Standards SQL,BTW的要求。
IIRC Access将重命名两个列以消除歧义。这可以解释为什么结果中没有名为msgId
的列。