2017-02-02 28 views
0

我想設置to_tsvector語言(例如:'French'),以便在渲染FTS矢量時使用正確的字典。從* to_tsvector中選擇* - 連接表

表格消息有一個locale_id列,該列在locales表中。然後,我需要將locales表加入locale_id的languages表中以獲取實際的語言名稱。但我發現了一個模糊的;錯誤:

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

現在錯誤「缺少表格的FROM-clause條目」t3 「' – Growler

+0

@Growler可能在MySQL中,但不在大多數SQL方言中。如果你說INNER JOIN,你需要一個ON子句。 (或使用CROSS JOIN) –