我可能对两只眼睛都视而不见,但是通过很多版本迭代并尝试...删除了连字符和AS语句......
我总是从我的MySql5.1服务器解析错误1064。 我真的相信这是有效的,SQL Answers:
有什么建议吗?
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服务器版本对应的手册,以便在'ON附近使用正确的语法(companies.id = corporations_dpa_articles.corporation_id) 自然加入第3行的dpa_a'
非常感谢你。
答案 0 :(得分:2)
NATURAL JOIN
不应该有ON
条款。
连接条件是隐式的,基于列名。
您需要INNER JOIN
,因为列名不同。 id
无法自然加入corporation_id
答案 1 :(得分:0)
您是否尝试在联接语句中解包ON
子句?
此外,您可能需要考虑使用与natural join
不同的联接。 Natural join
并没有像其他连接方法那样给你足够的控制权,我不确定指定它加入的列是否有效。 <{1}} 可能更合适。