三连接查询中的语法错误

时间:2014-02-15 14:48:18

标签: sql postgresql

在Postgresql 9.3上,运行以下查询:

select p.name 
from products p 
   join categories c on c.id = p.category_id 
   join descriptions d on d.product_id = p.id 
where p.name LIKE 'word' 
   or c.name LIKE 'word' 
   or d.body LIKE 'word'

失败:

   附近的语法错误

产品,类别和说明是标准的表格支持的轨道模型,其中产品有一个类别和许多描述。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我在此查询中看不到语法错误:

select p.name
from products p join
     categories c
     on c.id = p.category_id join
     descriptions d
     on d.product_id = p.id
where p.name LIKE 'word' or c.name LIKE 'word' or d.body LIKE 'word';

您确定数据库中有一个名为descriptions的表吗?

我想请注意,这适用于SQL Fiddle

通过此查询获得完全错误:

select p.name
from products p join
     categories c
     on c.id = p.category_idjoin
     descriptions d
     on d.product_id = p.id
where p.name LIKE 'word' or c.name LIKE 'word' or d.body LIKE 'word';

我怀疑您的实际查询中存在类似语法错误。