SQL语法问题(左连接)

时间:2010-11-03 17:26:20

标签: sql syntax left-join

所以我遇到了查询问题,我真的不知道在哪里。注释放在语法错误的位置。查询要大得多,我试图缩短它以进行有效但更整洁的查询。

这是使用odbc连接到Progress数据库。我被告知它使用严格的SQL-92。

SELECT itemcust."item-cust", 
       itemcust."cust-no", 
       corptreeCust.code 

FROM      pub."item-cust" itemcust 
JOIN      pub.customer cust 
left join pub.salesstructcustomer struct 
     on ( struct."corp-cust-type" = cust."corp-cust-type" 
      and struct."corp-cust-num" = cust."corp-cust-num" 
     ) 
left join pub.corptree corptreeCust 
      on ( corptreeCust.uid = struct.corptreeid /* program says SQL Syntax error here */
       and corptreeCust.category = 'store' 
      ) 

where ( itemcust."in-entity" = {$entity} or itemcust."in-entity" = '*') 
  and itemcust."item-no" = {$itemno} 
  and ( itemcust."cust-no" = {$custno} or itemcust."cust-no" = '*') 
  and cust."cust-no" = {$custno}

谢谢!

4 个答案:

答案 0 :(得分:6)

pub.salesstructcustomer的表格别名是struct,而不是加入时引用的structc

答案 1 :(得分:5)

这是一个错字吗?看起来它正在看结构而不是结构,除非我错过了什么。

答案 2 :(得分:3)

在cust和itemcust之间似乎没有on子句。这肯定会让解析器混淆在查询中进一步抛出错误

答案 3 :(得分:0)

首先,我很感激回应。没有ON条款的事实是一个严重的问题,但实际上并不是真正的问题。

问题实际上是uid是保留字,而我必须将其corptreeCust.\"uid\"

=(