我有这段代码,但不断出现语法错误。
query = "SELECT * "+
"FROM Product " +
"INNER JOIN Orders ON (Product.ItemID=Orders.ItemID) " +
"LEFT OUTER JOIN SupplierProduct ON (Orders.ItemID=SupplierProduct.ItemID) "+
"WHERE Product.Receiver = 'Fred' " +
"ORDER BY Product.ItemName";
DefaultTableModel data = table.getQuery(query);
我还尝试了 INNER JOIN
来代替 LEFT OUTER JOIN
。我不断尝试的错误是。
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '(Product.ItemID=Orders.ItemID) LEFT OUTER JOIN SupplierProduct ON (Orders.ItemID=SupplierProduct.ItemID'.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
我在这里缺少什么或者如何加入三个表。
最佳答案
尝试像这样使用括号:
query = "SELECT * "+
"FROM (Product " +
"INNER JOIN Orders ON (Product.ItemID=Orders.ItemID)) " +
"LEFT OUTER JOIN SupplierProduct ON (Orders.ItemID=SupplierProduct.ItemID) "+
"WHERE Product.Reciever = 'Fred' " +
"ORDER BY Product.ItemName";
关于sql - 在 JDBC 中连接三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18127251/