mysql-MYSQL连续左连接两张表报错

问题描述

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

解决方案

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

解决方案二:

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

解决方案三:

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

时间: 2024-10-03 00:10:05

mysql-MYSQL连续左连接两张表报错的相关文章

mysql中关于左连接,取出来的数据顺序和主表不一样

问题描述 mysql中关于左连接,取出来的数据顺序和主表不一样 如题,楼主最近在跟着视频学习SQL语句,发送自己做出来的效果和老师不一样 如图 这时两张表,学生表和班级表 要求是查询班级一样的学生信息,查出左连接显示是这样的: 右连接显示这样 请问一下为什么左连接查询出来显示数据的顺序不是按照学生表的顺序来啊?学生表不是主表么?为什么我显示出来的itcast顺序完全乱了,而是按照后面右表的id顺序来排? 求求求,急求大神解疑 解决方案 这个结果就是这样的.因为你的左连接写的是pr_student

mysql left join 左连接查询关联n多张表

left join 左连接即以左表为基准,显示坐标所有的行,右表与左表关联的数据会显示,不关联的则不显示.关键字为left join on. **基本用法如下:  select table a left join table b on a.id = b.ta_id** 注意:️其中on后面关联的字段应该是同一字段(两表关联的外键) ️由于以左表为基准,左表一条记录如果对应右表多条记录,那查出的数据中右表的数据也只显示一条,如果要都显示,可以用group_contact()将字段用逗号隔开显示在一

MySQL left join 左连接详解介绍

表a 1 aid adate   2 1 a1   3 2 a2   4 3 a3 表b 1 bid bdate   2 1 b1   3 2 b2   4 4 b4 1  代码如下 复制代码 select * from a left join b on a.aid = b.bid 首先取出a表中所有数据,然后再加上与a.b匹配的的数据. 此时的取出的是: 1 1 a1 b1   2 2 a2 b2   3 3 a3 空字符 同样的也有right join 指的是首先取出b表中所有数据,然后再加

mysql中一张表LEFT JOIN 左关联两张表语句

先看实例  代码如下 复制代码 SELECT p.price, pd.name, m.manufacturers_name FROM (products p            LEFT JOIN products_description pd ON p.products_id = pd.products_id)            LEFT JOIN manufacturers m ON p.manufacturers_id = m.manufacturers_id 关于 "A LEFT

MySQL左连接、右连接和内连接详解

本文向您简单介绍MySQL的ySQL左连接.右连接和内连接,并对具体的操作情况给出简单示例. 以MySql为例.在MySQL数据库中建立两张数据表,并分别插入一些数据. 示例脚本如下: drop table table1; CREATE TABLE `andrew`.`table1 ( `name` VARCHAR(32) NOT NULL, `city` VARCHAR(32) NOT NULL ) ENGINE = MyISAM; insert into TABLE1(name, city)

mysql关于两张表查询的问题

问题描述 mysql关于两张表查询的问题 我现在有两张表 iislog ips_global 想根据iislog表查询出来的IP地址,得出对应的归属地,请问这语句该怎么写啊? 解决方案 如果没有关联,可以这么写 select g.ip_location, g.ip_isp from ips_global g left join iislog l on l.id=1 where g.ip_start<=l.client_ip and g.ip_end >= l.client_ip id是主键,可

数据库SQL,将两张表合并为一张表

问题描述 数据库SQL,将两张表合并为一张表 将表table1.table2合并为表table3 table1: id name value 1 阅读 5 1 视频 7 1 游戏 7 2 阅读 1 2 游戏 3 table2 id name value 1 阅读 8 1 视频 9 1 游戏 2 2 阅读 11 3 视频 4 table3: id name value1 value2 1 阅读 5 8 1 视频 7 9 1 游戏 7 2 2 阅读 1 11 2 游戏 3 0 3 视频 0 4 解决

通过两张表查询数据的效率咨询

问题描述 问一下,我需要根据条件去两个数据表中取数据.我是先从一个表中取出数据后通过利用forallentriesin去另一张表中取数据效率高呢,还是通过innerjoin连接两张数据表取数据效率高呢,很是迷茫,还请高手指点,十分感谢-- 解决方案 解决方案二:这个要看具体情况,通常情况下如果两张表的关联都是关键字段时可以直接使用innerjoin,对于有些不是透明表(如簇表)是必须使用forallentriesin的.解决方案三:如果就是两张自己建的普通的表呢,比如说整两个表的关联字段有一张表

mysql 两张表关联查询问题

问题描述 mysql 两张表关联查询问题 现在有表A大概是百万级的数据,表B只有几千行,但是想在查询表A里剔除掉表B的数据,SELECT * FROM A WHERE NOT EXISTS (SELECT 1 FROM B WHERE B.id = A.id),这种写法效率很低,请问有没有其他的解决方法? 解决方案 这样写当然效率低,因为是笛卡尔积,要用join select a.*, b.* from a join b on a.id=b.id 解决方案二: 左外连left join 解决方案