Java-带3表的内部联接

Java-带3表的内部联接,java,sql,ms-access-2007,inner-join,Java,Sql,Ms Access 2007,Inner Join,我正在使用Javanetbeans软件和Microsoft Access的链接做一些项目 当我需要从Microsoft Access将3个表内部联接在一起时,会出现此问题 我可以将两个表内部连接在一起 rsUpdate = stmtUpdate.executeQuery("SELECT * FROM A_User Inner Join A_PC ON A_USER.SN = A_PC.SN"); 我能得到结果。但不能与3个表进行内部联接 rsUpdate = stmtUpdate.ex

我正在使用Javanetbeans软件和Microsoft Access的链接做一些项目

当我需要从Microsoft Access将3个表内部联接在一起时,会出现此问题

我可以将两个表内部连接在一起

rsUpdate = 

stmtUpdate.executeQuery("SELECT * FROM A_User Inner Join A_PC ON A_USER.SN = A_PC.SN");
我能得到结果。但不能与3个表进行内部联接

rsUpdate = 

stmtUpdate.executeQuery

("SELECT * FROM A_User Inner Join A_CPU ON A_USER.SN = A_CPU.SN , Inner Join A_Software ON A_CPU.SN = A_Software.SN")
对于上面的SQL,我有3个分别用于用户| CPU |软件的表|

我得到java.sql.SQLException的错误:在end sql语句之后找到字符


谢谢

第一次加入后不应该有逗号

rsUpdate = 

stmtUpdate.executeQuery

("SELECT * FROM A_User Inner Join A_CPU ON A_USER.SN = A_CPU.SN  Inner Join A_Software ON A_CPU.SN = A_Software.SN")

第一次联接后不应使用逗号

rsUpdate = 

stmtUpdate.executeQuery

("SELECT * FROM A_User Inner Join A_CPU ON A_USER.SN = A_CPU.SN  Inner Join A_Software ON A_CPU.SN = A_Software.SN")
对于Ms Access,当您连接多个表时,语法是不同的。应该是这样的:

SELECT * 
FROM   ((a_user 
         INNER JOIN a_cpu 
                 ON a_user.sn = a_cpu.sn) 
        INNER JOIN a_software 
                ON a_cpu.sn = a_software.sn) 
对于Ms Access,当您连接多个表时,语法是不同的。应该是这样的:

SELECT * 
FROM   ((a_user 
         INNER JOIN a_cpu 
                 ON a_user.sn = a_cpu.sn) 
        INNER JOIN a_software 
                ON a_cpu.sn = a_software.sn) 
这里不需要“,”。。。试试上面的代码

这里不需要“,”。。。尝试上面的代码解决问题

比如说-

表A | UsernamePK |地址|

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

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

rs = st.executeQuery

("SELECT * FROM (A Inner Join B on A.Username = B.Username) Inner Join C on A.Username = C.Username");
如果有人在寻找内部链接,请使用JAVA和链接访问将3个表连接在一起 使用上面的参考资料

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

谢谢所有帮助我的人:

问题解决了

比如说-

表A | UsernamePK |地址|

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

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

rs = st.executeQuery

("SELECT * FROM (A Inner Join B on A.Username = B.Username) Inner Join C on A.Username = C.Username");
如果有人在寻找内部链接,请使用JAVA和链接访问将3个表连接在一起 使用上面的参考资料

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



感谢所有帮助我的人:

可能重复,两个内部连接语句之间不需要逗号。选择*从某个用户内部加入某个用户上的某个CPU.SN=A\u CPU.SN内部加入某个用户上的某个软件.SN=A\u软件.SNi尝试使用逗号,但在查询中提示语法错误expression@RafaEl你建议我使用3个主键相同的表吗?可能重复,在两个内部JOIN语句之间不需要逗号。选择*从某个用户内部加入某个用户上的某个CPU.SN=A\u CPU.SN内部加入某个用户上的某个软件.SN=A\u软件.SNi尝试使用逗号,但在查询中提示语法错误expression@RafaEl你建议我使用3个主键相同的表吗?我尝试了b4这个代码,但不起作用。语法错误查询表达式中缺少运算符我尝试了b4此代码,但不起作用。语法错误查询表达式中缺少运算符我尝试了b4此代码,但不起作用。语法错误查询表达式中缺少运算符我尝试了b4此代码,但不起作用。语法错误查询表达式中缺少运算符所以您的意思是从用户内部选择*连接用户上的CPU。SN=A\u CPU.SN内部连接用户上的软件。SN=A\u软件。SN?这是您的输入错误内部连接吗?@FookShen-抱歉,请参阅我的编辑。Ms Access在连接多个表时使用不同的语法。这应该行得通。请试一试。如果我使用INNER内部联接,它将在联接操作中提示出语法错误。@FookShen sooory,这确实是一个输入错误,没有那么抱歉,删除它。所以你的意思是从用户内部加入一个用户上的CPU。SN=A\u CPU.SN内部加入一个用户上的软件。SN=A\u软件。SN?这是你的输入错误内部加入吗?@FookShen-抱歉,请看我的编辑。Ms Access在连接多个表时使用不同的语法。这应该行得通。请试一试。如果我使用INNER内部联接,它将在联接操作中提示语法错误。@FookShen sooory,这确实是一个输入错误,没有那么抱歉,请删除它。