mysql外部连接错误1064

roqulrg3  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(352)

我在尝试外部连接4个表时出错,2 x 2,以匹配两个表之间缺少的链接我还想显示那些不匹配的行。
此查询工作正常:

select
  r.name    AS r,
  a.name    AS a,
  f.name    AS f
from Field f
     join Order o 
    on f.f2o = o.oid
     join Resource r 
    on r.name = o.name
     join Attribute a 
    on a.a2r= r.oid and f.name = a.name;

但是如果我使用left或outer,它就不起作用了。这不起作用:

select
  r.name    AS r,
  a.name    AS a,
  f.name    AS f
from Field f
     join Order o 
    on f.f2o = o.oid
     join Resource r 
    on r.name = o.name
     outer join Attribute a             -- <--- here is the issue
    on a.a2r= r.oid and f.name = a.name;

返回
执行1个查询,0个成功,1个错误,0个警告
查询:选择r.name为r,a.name为a,f.name为f,oi.action为action from t\u m\u prod\u action\u oitem\u fld f join t\u m\u prod\u action\u oitem oi。。。
错误代码:1064您的sql语法有错误;检查与您的mysql服务器版本对应的手册,以获得在第11行的“outer join t\u m\u attr a on a.attr2rfs=r.oid and f.name=a.name limit 0,1000”附近使用的正确语法
提前谢谢

gopyfrb3

gopyfrb31#

没有这回事。要么使用 LEFT JOIN ,一个 RIGHT JOIN 或者模仿 FULL OUTER JOIN 使用 LEFT JOINRIGHT JOIN .
连接在不同的sql方言中是非常不同的。有些调用的连接稍有不同,有些没有特定的连接,有些使用不同的语法支持它们(例如没有 CROSS JOIN 但你还是可以 CROSS JOIN 使用 JOIN 没有一个 ON 条件)。始终阅读您使用的sql方言的文档。
有些人用 outer join 意思 full outer join 其他人用的地方 outer join 作为一个有三个 left , right 以及
full outer 连接。但是mysql没有 full outer join .

相关问题