TL;DR: как указывает @gmiley, проблема вызвана именем столбца _ID
, которое не является обычным идентификатором (см. определение ниже) и поэтому должно быть заключено в двойные кавычки "_ID"
или одинарные кавычки. '_ID'
в ваших операторах SQL.
select m.title, m.year, g.value
from MOVIES m
inner join MOVIES_GENRE g on m."_ID" = g."_ID";
В отличие от обычных идентификаторов, идентификаторы в кавычках чувствительны к регистру ("_id"
не совпадает с "_ID"
, тогда как title
идентично TITLE
). Если бы вы указали "_id"
в своем заявлении, возникла бы ошибка, указывающая, что столбец не найден.
Поскольку вы упомянули, что использовали Облачный процесс хранения для заполнения ваших таблиц DashDB, вероятно, стоит упомянуть, что имена свойств пишутся в верхнем регистре, когда DDL генерируется во время обнаружения схемы.
Пример: содержимое документов JSON с такой структурой
{
"_id": "000018723bdb4f2b06f830f676cfafd6",
"_rev": "1-91f98642f125315b929be5b5436530e7",
"date_received": "2016-12-04T17:46:47.090Z",
...
}
будет отображаться в три столбца:
_ID
типа VARCHAR(...)
_REV
типа VARCHAR(...)
DATE_RECEIVED
типа ...
- ...
Надеюсь это поможет!
Из справочника по SQL DB2< /а>:
Обычный идентификатор — это заглавная буква, за которой следует ноль или более символов, каждый из которых является заглавной буквой, цифрой или символом подчеркивания. Обратите внимание, что при указании обычного идентификатора можно использовать строчные буквы, но при обработке они преобразуются в прописные. Обычный идентификатор не должен быть зарезервированным словом.
Примеры: WKLYSAL
WKLY_SAL
Идентификатор с разделителями — это последовательность из одного или нескольких символов, заключенная в двойные кавычки. Ведущие пробелы в последовательности являются значимыми. Конечные пробелы в последовательности не имеют значения, хотя они сохраняются вместе с идентификатором. Две последовательные кавычки используются для представления одной кавычки в идентификаторе с разделителями. Таким образом, идентификатор может включать строчные буквы.
Примеры: "WKLY_SAL"
"WKLY SAL"
"UNION"
"wkly_sal"
person
ptitzler
schedule
23.03.2017
_id
, вы можете попробовать заключить его в двойные кавычки, чтобы указать, что это имя объекта:inner join MOVIES_GENRE g on m."_ID" = g."_ID";
Однако, если возможно, рекомендуется переименовать эти столбцы в более стандартный формат. - person gmiley   schedule 22.03.2017