2012-03-07 9 views
0

私はC#アプリケーションを作成しており、Access.mdbを使用しています。私は電子メールメッセージとメッセージの関係を持つテーブルを持っています(各電子メールメッセージは複数のチームの作業者に割り当てられます)。したがって、リレーションテーブルの行には「msgId」と「teamName」フィールドがあります。SQL:プライマリキーでテーブルを結合し、プライマリキーを返す

特定のチームに割り当てられている最初のテーブルからすべてのメッセージを取得したいと考えています。

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

しかし、テーブルは、このフィールドに結合されているので、それは、私が推測する、私のためMSGIDを返しませんが、その後、私は 私の中にメッセージを識別することができませんメートル:私は、次のクエリを使用していますC#コード。

クエリでmsgIdを返すようにするにはどうすればよいですか?

答えて

2

それは選択のフィールド名を指定するか、またはあなたがすべてのフィールドを取得したいテーブル名を追加し、この選択リストにしてみてください十分です:

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

それは、二回で表示されます結果は、それぞれMails.msgIdMailAssignments.msgIdです。ただし、msgIdという名前の2つの列はありません。むしろ、DBMSは列のあいまいさを解消する必要があります。これはStandards SQL、BTWの要件です。

IIRCアクセスカラムの名前を明確にするために名前を変更します。これは結果にmsgIdという名前の列がない理由を説明します。

関連する問題