MySQL OUTER JOIN 语法错误

Posted

技术标签:

【中文标题】MySQL OUTER JOIN 语法错误【英文标题】:MySQL OUTER JOIN syntax error 【发布时间】:2012-09-10 11:49:39 【问题描述】:

也许对你们来说是个面子,但作为一个 SQL 查询新手,我遇到了语法问题。有谁知道怎么回事?

SELECT * FROM company C
OUTER JOIN company_address A ON C.company_id = A.company_id
WHERE A.company_id IS NULL

给出错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds 
to your mysql server version for the right syntax to use near 
'OUTER JOIN company_address A ON C.company_id = A.company_id WHERE A.address_id 
' at line 2

【问题讨论】:

【参考方案1】:

In MySQL 你应该使用左外连接或右外连接。不只是外连接。如果您需要在 MySql 中进行 FULL OUTER JOIN you can use UNION of LEFT JOIN and RIGHT JOIN

【讨论】:

【参考方案2】:

试试

SELECT * FROM company C
LEFT JOIN company_address A ON C.company_id = A.company_id
WHERE A.company_id IS NULL

【讨论】:

【参考方案3】:

您必须编写 LEFT JOIN、RIGHT JOIN、INNER JOIN 或 FULL OUTER JOIN,而不仅仅是 OUTER JOIN

您的表格名称也有一个错误,表格的字母之间不应有空格,例如 [company C- 应将其命名为 company_C]

我希望这会成功..一切顺利!

【讨论】:

以上是关于MySQL OUTER JOIN 语法错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥 MySQL 会在 FULL OUTER JOIN 上报告语法错误?

MYSQL 语法错误 LEFT JOIN

MySQL 数据库中 left outer join 和 left join 啥区别

SQL的JOIN语法解析(inner join, left join, right join, full outer join的区别)

使用方法语法实现的 LEFT OUTER JOIN

我是不是将 Ansi OUTER JOIN 语法正确地转换为较旧的 Sybase (*=) 连接语法?