输入数据时行中有错误的内部联接多个表-Java

输入数据时行中有错误的内部联接多个表-Java,java,ms-access,Java,Ms Access,之前我已经发布了关于将内部连接到多个表的问题。很可能SQL内部连接代码不是问题 rsTry = stmtTry.executeQuery( "SELECT * FROM (User Inner Join CPU On User.SN = CPU.SN) Inner Join Software on CPU.SN = Software.SN"); 下面是要存储在数据库中的代码 rsTry.moveToInsertRow(); rsTry.updateString(1, jtfS

之前我已经发布了关于将内部连接到多个表的问题。很可能SQL内部连接代码不是问题

rsTry = stmtTry.executeQuery(

"SELECT * FROM (User Inner Join CPU On User.SN = CPU.SN) Inner Join Software on CPU.SN = Software.SN");
下面是要存储在数据库中的代码

    rsTry.moveToInsertRow();
    rsTry.updateString(1, jtfSN.getText());
    rsTry.updateString(2, jtfName.getText());
    rsTry.updateString(3, jtfDepartment.getText());
    rsTry.updateString(4, jtfHostname.getText());
    rsTry.updateString(5, jtfModel.getText());
    rsTry.updateString(6, jtfBrand.getText());
    rsTry.updateString(9, jtfMsOffice.getText());
    rsTry.updateString(10, jtfMsVisio.getText());
    rsTry.insertRow();
我的桌子设计

User - SN | Name | Department
CPU - Hostname | Model | Brand | SN
S/w - SN | MsOffice | MsVisio
我对内部联接2个表没有问题,也能设法更新数据。 但是,当我尝试提交数据时,内部连接3个表时,它会弹出

ava.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error in JOIN operation.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3117)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:337)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:252)
at testing.NewJFrame.testingJoint(NewJFrame.java:64)
at testing.NewJFrame.actionPerformed(NewJFrame.java:40)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
生成成功(总时间:3秒)

问题已解决

比如说-

表A |用户名(PK)|地址|

表B | ID |电话|用户名(FK)|

表C | SN |品牌|型号|用户名(FK)

如果有人在寻找内部链接,请使用JAVA和链接访问将3个表连接在一起 使用上面的参考资料

确保在运行java程序之前必须在Access中链接表关系,否则会弹出“行中出错”


谢谢所有帮助我的人:)

你能发布你得到的错误的堆栈跟踪吗?您是否设置了外键?sry我只是更改为上面更新的堆栈跟踪
rs = st.executeQuery

("SELECT * FROM (A Inner Join B on A.Username = B.Username) Inner Join C on A.Username = C.Username");