具体情况:
conn = com.dao.DBUtils.getConnection();
String sql = "select 姓名,性别,身份证,联系电话,客户信息表.客户编号,入住时间,客房编号,预定时间,押金 from 客户信息表,客房入住表 where 客户信息表.客户编号=客房入住表.客户编号 and 客户信息表.客户编号 ='100011' and 身份证 ='513723201601019874'";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
错误类型:
com.microsoft.sqlserver.jdbc.SQLServerException: “.”附近有语法错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1522)
补充:
在sql server 中执行下面语句是没问题的。
select 姓名,性别,身份证,联系电话,客户信息表.客户编号,入住时间,客房编号,预定时间,押金 from 客户信息表,客房入住表 where 客户信息表.客户编号=客房入住表.客户编号 and 客户信息表.客户编号 ='100011' and 身份证 ='513723201601019874'
问:
这是怎么回事?难道jdbc中不支持多表联结查询?求解决方法,谢谢!
jdbc肯定支持,错误看不出来,你试试把查询的列的客户信息表.客户编号去掉试试
String sql = "select 姓名,性别,身份证,联系电话,客户信息表.客户编号,入住时间,客房编号,预定时间,押金 from 客户信息表,客房入住表 where 客户信息表.客户编号 = 客房入住表.客户编号 and 客户信息表.客户编号 ='100011' and 身份证 = '513723201601019874'";
这样改就没问题了。但是,为什么啊?我没发现哪里不同啊!郁闷、、、
你写这么多,到底是哪个 . 附近有问题啊,sql语句这么长 还都是汉语 都给我看晕了,你后面改什么了,说清楚一些我给你看看。
客户信息表.客户编号=客房入住表.客户编号
客户信息表.客户编号 = 客房入住表.客户编号
= 你的等号 中间加了 空格
虽然大家都是中国人,但是代码里注释以外的东西用中文真的很难受