2017-02-02 4 views
0

Я хочу установить язык to_tsvector (например, «Французский язык»), поэтому он использует правильный словарь при визуализации вектора FTS.Выберите * from to_tsvector - присоединительные таблицы

Таблица содержит столбец locale_id, который находится на столе locales. Затем мне нужно присоединиться к таблице locales к таблице languages на locale_id, чтобы получить фактическое имя языка. Но я получаю неоднозначное ; ошибку:

select * from to_tsvector(t3.language, t1.message) 
inner join message as t1 
inner join locales as t2 on (t1.locale_id = t2.id) 
inner join languages as t3 on (t2.language_id = t3.id); 

ERROR: syntax error at or near ";" LINE 1: ....id)

inner join languages as t3 on (t2.language_id = t3.id);

ответ

0

новый код:

select to_tsvector(t3.language, t1.message) 
from message as t1 
inner join locales as t2 on (t1.locale_id = t2.id) 
inner join languages as t3 on (t2.language_id = t3.id); 

оригинальное исправление:

select * from to_tsvector(t3.language, t1.message) 
inner join message as t1 on 1 = 1 /* an ON join criteria is mandatory here even if you are doing an implicit cross join */ 
inner join locales as t2 on (t1.locale_id = t2.id) 
inner join languages as t3 on (t2.language_id = t3.id); 
+0

От http://stackoverflow.com/questions/ 15508142/how-to-join-2-tables-without-an-on-clause Я думал, что не нужно – Growler

+0

Теперь ошибка 'missing FROM-clause entry для таблицы t3 "' – Growler

+0

@Growler возможно в MySQL, но не в большинстве диалектов SQL. Если вы скажете INNER JOIN, вам понадобится предложение ON. (Или используйте CROSS JOIN) –

Смежные вопросы