我可能两只眼睛都瞎了,但反复重复了很多版本和尝试.删除了连字符和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(corporations.id=corporations_dpa_articles.corporation_id) #1064 -您的SQL语法出现了错误;请检查与MySQL服务器版本相对应的手册,以获得在第3行使用“ON
天然联接dpa_a”的正确语法。
先谢谢你。
发布于 2012-01-11 14:27:14
NATURAL JOIN不应该有ON子句。
连接条件是隐式的,并且基于列名。
您需要INNER JOIN,因为列名是不同的。id将不自然地加入到corporation_id
发布于 2012-01-11 14:25:19
您试过在join语句中重新包装ON子句吗?
另外,您可能需要考虑使用与natural join不同的连接。Natural join给您的控制权不如其他连接方法,我也不确定指定它所连接的列是否有效。inner join可能更合适。
https://stackoverflow.com/questions/8820893
复制相似问题