この質問はlibpqxxに固有のものです。
次のような SQL ステートメントがあるとします。
string s = "SELECT a.foo, b.bar FROM tableOne a, tableTwo b WHERE a.X=b.X"
それを pqxx トランザクションに送信します。
trans.exec(s.c_str(), s.c_str());
結果フィールドの列の名前は?
つまり、1 行が選択されていると仮定すると、次のようになります。
pqxx::result::const_iterator row = result.begin();
int foo = row->at(FOO_COLUMN).as<int>();
int bar = row->at(BAR_COLUMN).as<int>();
FOO_COLUMN と BAR_COLUMN にはどのような値が必要ですか? それらはそれぞれ「a.foo」と「b.bar」でしょうか?
SQLステートメントが「as」キーワードを使用して変数の名前を変更した場合、列名は「as」に設定されたものになると思いますが、そうですか?
通常、私は SQL を試して列の値を出力しますが、ソフトウェアとデータベース自体の両方を開発しているため、そのテストを行うのは今のところ簡単ではありません。
ありがとう!