请告诉我此查询中的语法问题
SELECT sde
FROM TABLE_EW sde , CASE_W spr, DOCUMENT swp
JOIN swp.id, swp.YEAR ON (swp.id = sde.ID_DOCUMENT)
JOIN spr.ID, spr.STATE, spr.NUMBER ON (spr.ID_DOCUMENT = swp.ID)
WHERE sde.IDENT_TABLEEW LIKE '122337456464'
AND swp.YEAR LIKE 2015;
SQLDeleoper将问题指向From Line
答案 0 :(得分:3)
我认为这是你要编写的查询:
SELECT sde.*,swp.id, swp.YEAR,spr.ID, spr.STATE
FROM TABLE_EW sde
JOIN DOCUMENT swp ON (swp.id = sde.ID_DOCUMENT)
JOIN CASE_W spr ON (spr.ID_DOCUMENT = swp.ID)
WHERE sde.IDENT_TABLEEW = '122337456464'
AND swp.YEAR = 2015;
如评论中所述,您的SQL代码中有很多错误。 您使用隐式和显式连接, AVOID 使用隐式连接语法,并使用正确的语法,如我的示例。
此外,只有在您可以指定所需列的选项中,我才能猜到您尝试做的是
JOIN spr.ID, spr.STATE -> wanted this columns.
你应该在选择部分写下它们。
另一个问题是连接条件,你要么使用隐式连接,(来自table,table2,table3 ..)然后连接条件在where子句中,或者你使用显式连接,然后条件在ON子句中。你不能同时使用它们!
另一个问题是不必要地使用LIKE。与完全匹配进行比较时,请使用EQUALS符号。