2 u010468993 u010468993 于 2016.03.28 18:29 提问

MYSQL连续左连接两张表报错

SQL语句如下:
SELECT * FROM
channel AS a JOIN floors b ON a.ifloorid = b.id
join floors c on a.ofloorid = c.id
连续连接同一张表。
这个SQL语句直接放在mysql终端执行是没有问题的。
但是当用jdbc运行的时候。提示错误:
You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near ''floors' b ON a.ifloorid = b.id JOIN 'floors' c ON a???ofloorid = c.id' at line 1

数据库版本是5.5,mysql的jar版本是5.1.6

3个回答

Java__Coder
Java__Coder   2016.03.28 19:16

a???ofloorid = c.id....

u010468993
u010468993 我也看到这个了。但是这就是一个点。英文状态下的,所以不知道究竟是哪的问题
2 年多之前 回复
yue1123
yue1123   2016.03.28 20:38

mysql终端没问题那说明不是sql格式有问题,你把jar版本换成5.5或以上的试下再试下。可能是5.1.6的编码不兼容高版本的mysql
还有这里的join默认不是左链接。而是内链接

u010468993
u010468993 回复yue1123: 不是关键字的问题,我之前也试过加,也不起作用。但是今天早上还是上面那个语句突然就正确了。
2 年多之前 回复
yue1123
yue1123 回复ahuwangqun: 表名或都字段名是否有包含关键字? http://www.cnblogs.com/zzxbest/archive/2011/09/22/2185029.html
2 年多之前 回复
u010468993
u010468993 从低到高版本的都换了不起作用、请问你能不能把这个语句改成子查询的。
2 年多之前 回复
zhangjs712
zhangjs712   2016.03.29 08:57

SELECT * FROM
channel a ,floors b,floors c where a.ifloorid = b.id and a.ofloorid = c.id 你的SQL与这样写的效果是一样的。你试试看会不会报错

zhangjs712
zhangjs712 回复ahuwangqun: 搞清楚原因了没,否则以后也是个风险。
2 年多之前 回复
u010468993
u010468993 还是上面那句话,今天能跑了。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
SQL左外连接连接多个表
遇到问题说是要多个表生成一个VIEW, 那么应该用到连接,查了一个关于多个表连接的方法.如下:CREATE VIEW VITEM AS ITEM.ID,CARGO.ID,CHARGE.ID,CUSTOMER.ID,ITEMUSERS.ITEMID FROM ITEM     LEFT JOIN  CARGO         ON ITEM.ID=CARGO.ID       LEFT JO
mysql左连接右连接(查询两张表不同的数据)
有两张表:一张A表he一张B表 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 ; right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录; inner join(等值连接) 只返回两个表中联结字段相等的行; 表A数据: 表B数据: 1、查询两张表中都有的记录: sql: SELECT a.* FROM
多表之间实现左连接
CPM_TASK_RES表有三个外键,对应CPM_RES_SORT,CPM_RES_TYPE ,CPM_RES 这三个表的主键,想像两个表左连接那样实现四个表的做连接:方法如下: select a.Task_Code, a.Project_Code, a.Res_Num, a.ResSort_Code, b.ResSort_Name,       a.ResType_Code, c.Res
mysql 连接查询指的是将两张表或多张表关联到一起进行查询,获取一个表的行与另一个表的行匹配的数据。常见的连接查询包括内连接(等值连接)、左(外)连接、右(外)连接和交叉连接(完全连接)等
连接查询指的是将两张表或多张表关联到一起进行查询,获取一个表的行与另一个表的行匹配的数据。常见的连接查询包括内连接(等值连接)、左(外)连接、右(外)连接和交叉连接(完全连接)等。下面这张图形象的展示了这几种连接查询所获取的结果集:
mysql left join 左连接查询关联n多张表
最近用mysql 多表关联查询比较多,特此总结一下left join用法,拓展下left join将多表关联。left join 左连接即以左表为基准,显示坐标所有的行,右表与左表关联的数据会显示,不关联的则不显示。关键字为left join on。 **基本用法如下: select table a left join table b on a.id = b.ta_id**注意:1⃣️其中on后
mysql 内连接,连续两次使用同一张表,自连接
1、内连接 有两个表,学生表student,班级表:class 班级表class: 学生表student: 内连接: select * from class INNER JOIN student on class.id=student.classId 自己也喜欢写成如下这种形式: select * from clas
数据库左连接查询(查询多张表中的数据)
描述:根据两张表的关联字段,将两张表进行关联来取数据 语句:select a.,b. from a left join b on a.aid=b.bid 例子:public List<WlzxZbglThjl> searchThjl(String zbid){ //将供应商表与保证金退还记录表利用供应商的id相关联 String
Hibernate HQL 左连接 查询 两张表
由于项目需要,现在需要进行两张表连接查询,但前期hql已经写好,现在只是想在原有的基础之上再加上一个表的连接查询,本来如果用本地sql的方式很容易实现,但是原来已经用hql来写,并且程序本身在取得查询结果后如果查询出来是对象,对后面的操作很方便,故要在原有hql基础之后添加外连接,如下: if("0".equals(orgId)){ //顶级机构查询所有下级 hqlStrBuffer.appe
MySQL左外连接where条件包含多表写法
首先创建两个表CREATE TABLE `student` ( `name` VARCHAR (10) DEFAULT NULL, `class` INT (11) DEFAULT NULL )CREATE TABLE `score` ( `name` varchar(10) DEFAULT NULL, `subject` varchar(10) DEFAULT NULL, `sc
两个表用HQL语句进行左右连接,前提是不是两个表需要有主外键关系?
两个表用HQL语句进行左右连接,前提是不是两个表需要有主外键关系? (2011-08-23 14:15:37)转载▼ <div class="articalTag" id="sina_keyword_ad_area"> <table> <tbody><tr> <td clas