次の場合に発生するはずのことを説明する Sqlite3 に関するドキュメント/仕様はありますか?
次のクエリを実行します。
var cmd = new SqliteCommand("SELECT Items.*, Files.* FROM Items LEFT JOIN Files ON Files.strColName = Items.strColName");
と の両方ItemsにFiles列名 " strColName " があります。エントリが に存在する場合Filesは結果に結合され、存在しない場合は NULL になります。からのものであろうとなかろうと、 strColNameの値が常に必要であると仮定しましょう。リーダーを実行すると:ItemsFiles
var reader = cmd.ExecuteReader();
に一致するものがある場合、値が設定され、両方のテーブルで同じであるためFiles、 にreader["strColName"]は明らかに正しい結果が含まれます。しかし、 に一致がなかった場合、 の NULL 値はの非FilesNULL 値を上書きしますか?FilesItems
どちらの結果も信頼できるように、Sqlite3 実装がこのケースに対処する方法を定義する仕様を本当に探しています。