TL; DR:@gmiley問題を指摘するように、通常の識別子ではない_ID
列名によって引き起こされる(以下の定義を参照)、したがって、二重引用符で囲む"_ID"
する必要があるか、さあなたのSQL文では一重引用符'_ID'
。
select m.title, m.year, g.value
from MOVIES m
inner join MOVIES_GENRE g on m."_ID" = g."_ID";
通常の識別子とは異なり引用識別子は、ケース(title
がTITLE
と同一であるのに対し、"_id"
が"_ID"
と同一ではない)敏感です。文中に"_id"
と指定すると、列が見つからないことを示すエラーが表示されます。
Cloudant warehousing processを使用してDashDBテーブルを作成したと述べたので、スキーマの検出中にDDLが生成されたときに、プロパティ名が大文字であると言えるでしょう。
例:この構造
{
"_id": "000018723bdb4f2b06f830f676cfafd6",
"_rev": "1-91f98642f125315b929be5b5436530e7",
"date_received": "2016-12-04T17:46:47.090Z",
...
}
とJSON文書の内容は、3つの列にマッピングされますタイプの
_ID
VARCHAR(...)
タイプの
_REV
VARCHAR(...)
DATE_RECEIVED
のタイプ...
- ...
これが役立ちます。 DB2 SQL referenceから
:
通常識別子は大文字、数字、または下線文字であり、その各々は、ゼロ以上の文字が続く大文字です。小文字は通常の識別子を指定するときに使用できますが、処理時には大文字に変換されます。通常の識別子は予約語であってはなりません。
例:WKLYSAL
WKLY_SAL
区切り識別子が 二重引用符で囲まれた一つ以上の文字のシーケンスです。シーケンス中の先頭の空白は重要です。 シーケンス内の末尾ブランクは、識別子とともに に格納されていますが、重要ではありません。 2つの連続した引用符は、区切られた識別子内に1つの引用符を で表すために使用されます。このように、識別子 には、小文字を含めることができます。
例: "WKLY_SAL"
"WKLY SAL"
"UNION"
"wkly_sal"
あなたは、特定のエラーを受信していますか?カラム名が '_id'であると思われる場合は、それを囲むように二重引用符を入れてオブジェクト名であることを示すことができます:'内部結合MOVIES_GENRE g on m。 "_ ID" = g。 "_ ID"; 'Ifこれらの列の名前をより標準的な形式に変更することをお勧めします。 – gmiley