2016-10-02 5 views
0

Microsoft Accessデータベースと連携のVisual C++アプリケーションの一部として、私は私が使用して、このSQLクエリを持っている:特定のデータベースレコードがこのSQLクエリの結果から除外されるのはなぜですか?

Bible/Dieu BD 
Derniers jours/Jugement de Dieu DJ 
Epreuves/Difficultés ED 
Evangélisation/Ministère EM 
Famille/Jeunes FJ 
Foi/Spiritualité FS 
Monde, pas partie du МР 
Non Spécifié NS 
Normes/Qualités chrétiennes NQ 
Religion/Culte RC 
Royame/Paradis RP 
公開話しカテゴリーで

strQuery = _T("SELECT [Public Talk Titles].*, ") 
      _T("[Public Talk Categories].Description AS [Category Description] ") 
      _T("FROM [Public Talk Categories] ") 
      _T("INNER JOIN [Public Talk Titles] ") 
      _T("ON [Public Talk Categories].Category = [Public Talk Titles].Category ") 
      _T("ORDER BY [Public Talk Titles].[Talk Number]"); 

pTalkRecordset->Open(CRecordset::snapshot,(LPCTSTR)strQuery, CRecordset::readOnly); 

私は、次の値を持っています

結果のレコードセットには、カテゴリがMPのすべてのレコードが除外されています。どうしてこれなの?

答えて

0

おそらく[Public Talk Titles]に一致するレコードが存在しないためです。

すべてのカテゴリが必要な場合は、right joinの代わりにleft joinを使用してください。

+0

パブリックトークタイトルテーブルにはレコードがあります。 –

+0

@AndrewTruckleしかし、それはカテゴリ "MP"を持っていますか?内部結合は、結合されたフィールドのリンクされた値が両方のテーブルにある場合にのみレコードを返します。 [詳細](http://stackoverflow.com/questions/38549/what-is-the-difference-between-inner-join-and-outer-join) – LukStorms

+0

少なくとも、それは視覚的に見えるようです。私がしたことは、Unicodeデータベースにアップグレードすることでした。次に、すべてのMPコードをXXに変更し、カテゴリテーブルのXXに名前を変更しました。上記のクエリを使用して、すべてのレコードが表示されます。少なくとも今は動作します。私はちょうどMPのコードでタイトルテーブルに約20のレコードを持っていたので、なぜそれが以前にはなかったのかわかりません。しかし、彼らはそれを見つけられませんでした。少なくとも今は動作します。 –

関連する問題