SELECT table1.col1, table2.col2
FROM table1
WHERE col3
IN(SELECT col1 FROM table3 WHERE col4 IN(SELECT col4 FROM table4 WHERE col5 LIKE '%XYZ%'))
INNER JOIN table2 ON table1.col1=table2.col6
ORDER BY table1.col1
我得到ORA00933 error.SQL command not properly ended.
如果我删除了联接,则查询完美无缺。但我需要加入。错误在LIKE关键字附近。我该如何解决?
答案 0 :(得分:4)
您错放了INNER JOIN
,它位于您的WHERE
子句中。
请注意,您可能希望采用某些格式化方案来编写SQL语句。它可以更容易地发现这些错误。
SELECT table1.col1, table2.col2
FROM table1
INNER JOIN table2 ON table1.col1=table2.col6
WHERE col3 IN (
SELECT col1
FROM table3
WHERE col4 IN (
SELECT col4
FROM table4
WHERE col5 LIKE '%XYZ%'
)
)
ORDER BY table1.col1
答案 1 :(得分:2)
尝试在WHERE
子句之前移动您的联接:
SELECT table1.col1, table2.col2
FROM table1
INNER JOIN table2 ON table1.col1=table2.col6
WHERE col3
IN(SELECT col1 FROM table3 WHERE col4 IN(SELECT col4 FROM table4 WHERE col5 LIKE '%XYZ%'))
ORDER BY table1.col1