1

我可能双眼都瞎了,但是迭代了很多版本并尝试...删除了连字符和 AS 语句...

我总是以 MySql5.1 服务器的解析错误 1064 告终。我真的相信这是有效的,SQL 答案:

有什么建议吗?

SELECT (dpa_articles.name, [...] corporations.isin) FROM corporations 
NATURAL JOIN corporations_dpa_articles ON (corporations.id = corporations_dpa_articles.corporation_id)
NATURAL JOIN dpa_articles ON (dpa_articles.id = corporations_dpa_articles.dpa_article_id)
NATURAL JOIN dpa_articles_dpa_categories ON (dpa_articles.id = dpa_articles_dpa_categories.dpa_article_id)
WHERE dpa_articles_dpa_categories.dpa_category_id = 28

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的“ON (corporations.id=corporations_dpa_articles.corporation_id) NATURAL JOIN dpa_a”附近使用正确的语法

非常感谢您提前。

4

2 回答 2

2

NATURAL JOIN不应该有ON从句。

连接条件是隐式的并且基于列名。

您需要INNER JOIN,因为列名不同。id不会自然加入corporation_id

于 2012-01-11T14:27:14.393 回答
0

您是否尝试在连接语句中解开该ON子句?

此外,您可能需要考虑使用与natural join. Natural joins 不像其他连接方法那样给你太多的控制,我不确定指定它连接的列是否有效。一个inner join 可能更合适。

于 2012-01-11T14:25:19.153 回答