Couchbase N1QL объединяет запрос - ошибка синтаксиса - PullRequest
0 голосов
/ 08 июня 2018

Я хочу соединить два сегмента по запросу ниже.Но это выдает мне ошибку, как показано ниже.Чего мне не хватает?

Ошибка:

syntax error - at ebook_id

Запрос:

 SELECT ebook_id, COUNT(*) as count 
        FROM `log` USE KEYS `log.`ebook_id 
        JOIN `product` USE KEYS product.book_id
        WHERE meta(`log`).id LIKE 'ebook_page_request%' AND `log`.date = CLOCK_LOCAL('1111-11-11') GROUP BY log.ebook_id

Ответы [ 2 ]

0 голосов
/ 20 июня 2018

На самом деле, обычно нет необходимости использовать обратные галочки вообще.Просто используйте простое имя корзины или поля.

Обратные метки - это экранирование, которое позволяет вам ссылаться на сегменты и поля, содержащие символы, которые по умолчанию не допускаются в идентификаторах в N1QL.Наиболее заметным из этих специальных символов является - (знак минус), который, к сожалению, используется в примерах наборов данных Couchbase, например, beer-sample.

По умолчанию не используйте `` обратные галочки.

0 голосов
/ 08 июня 2018
 FROM `log` USE KEYS `log.`ebook_id 

Неверное расположение обратного тика, оно должно заканчиваться перед точкой. Как показано ниже

FROM `log` USE KEYS `log`.ebook_id 

ИСПОЛЬЗОВАТЬ КЛЮЧИ НА ЛЕВОЙ стороне JOIN должно быть ПОСТОЯННЫМ, а правая сторона JOIN не может использоватьИСПОЛЬЗУЙТЕ КЛАВИШИ, и оно должно быть ВКЛЮЧЕНО в ключах с выражением, ссылающимся на левый сегмент.

ANSI JOINS поддерживаются только в CB 5.50

Pre CB 5.50 поддерживает LOOKUP иИндекс присоединения

...