[英]MySql Outer Join Error 1064
我在尝试外部连接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或external,它将不再起作用。 这不起作用:
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个警告
查询:从t_m_prod_action_oitem_fld f中选择r.name AS r,a.name AS a,f.name AS f,oi.action AS操作加入t_m_prod_action_oitem oi ...
错误代码:1064您的SQL语法错误; 检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第11行“ a.attr2rfs = r.oid和f.name = a.name LIMIT 0,1000”上的“ outer join t_m_attr a”附近使用
提前致谢
没有这样的事情。 使用LEFT JOIN
, RIGHT JOIN
或使用LEFT JOIN
和 RIGHT JOIN
并集模拟FULL OUTER JOIN
RIGHT JOIN
。
在不同的SQL方言中,JOIN的区别非常大。 有些调用联接的方式略有不同,有些则没有特定的联接,有些使用不同的语法来支持它们(例如,没有CROSS JOIN
但您仍可以使用JOIN
进行CROSS JOIN
JOIN
而无需使用ON
条件)。 请务必阅读您所使用的SQL方言的文档。
有些人用outer join
意味着full outer join
时,其它人使用outer join
作为具有三个类别left
, right
和full
outer
连接。 但是MySQL没有full outer join
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.