sql - 在 JDBC 中连接三个表

标签 sql ms-access syntax-error

我有这段代码,但不断出现语法错误。

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/

相关文章:

javascript - Java 中的圆周调试

sql - Microsoft Access - SQL - 内部外键

sql - Entity Framework 和迁移 - 如何在远程服务器上更新我的数据库?

sql - JPA——命名查询与查询

SQL JSON_VALUE 选择父值

c# - 在 C# 中使用 Microsoft Access 和 OleDb 在数据库中添加数据

sql - access sql 查询中的 YES/NO 字段类型是什么?

php - 意外的 T_VARIABLE,期待 T_FUNCTION

python - 为什么使用装饰器工厂工厂函数会出现语法错误?

mysql - 如何使用多个 View 创建临时表