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

时间:2012-03-07 11:43:05

标签: c# sql ms-access

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

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

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

但是它不会为我返回msgId,我想,因为这些表已加入此字段,但后来我 我无法在C#代码中识别消息。

如何让查询为我返回msgId?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

结果集中应显示两次,分别为Mails.msgIdMailAssignments.msgId。但是,您不应期望两列名为msgId。相反,DBMS应该消除列的歧义。这是Standards SQL,BTW的要求。

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