Oracle Apex连接三张相扑数据表时遭遇00933 SQL命令错误求助
问题解决:SQL语法顺序错误导致00933报错
你的SQL语句报错的核心原因是语法顺序错误:WHERE子句必须放在所有JOIN操作之后,而非之前。这个错误和你更换连接类型(Full Outer/Left)无关,只要语法顺序不符合规范就会触发该报错。
根据你“显示2019年段位为'Y%'的所有选手,无论其他年份是否有对应数据”的需求,修正后的SQL语句如下:
SELECT a.*, b.*, c.* FROM sumo_2019 a LEFT JOIN sumo_2018 b ON a.Rikishi1_ID = b.Rikishi1_ID LEFT JOIN sumo_2017 c ON a.Rikishi1_ID = c.Rikishi1_ID WHERE a.Rikishi1_Rank LIKE 'Y%'
补充说明:
- 调整WHERE子句位置至所有JOIN之后,符合SQL语法规范
- 使用LEFT JOIN可保留2019年符合条件的全部选手记录,若选手在2018或2017年无对应数据,对应字段会显示为NULL
- 若仅需要三年均有参赛记录的选手,将
LEFT JOIN替换为INNER JOIN即可
内容的提问来源于stack exchange,提问作者Ryan_Brusseau
相关产品推荐
相关产品推荐

