`
sailing04
  • 浏览: 61249 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

mysql联表查询关联的两个字段类型不一致的解决方案

 
阅读更多

  两张表A,B.现在通过A表的REC_ID(INT)和B表的PROD_ID(VARCHAR(50))进行关联查询,类似于以下的查询SQL:

SELECT a.*,b.* FROM A a left join B b on a.rec_id = b.prod_id;由于两个表的两个字段类型不一致,如果大数据量查询的时候,速度会非常慢。通过以下的优化,问题解决;SQL:SELECT a.*,b.* FROM A a left join B b on conver(a.rec_id,char) = b.prod_id。

  在测试的过程中曾尝试通过char(a.rec_id)、concat(a.rec_id,'')和cast((rec_id as char))等方式均没有成功。

  MYSQL中CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。
  这个类型 可以是以下值其中的 一个:
    BINARY[(N)]
    CHAR[(N)]
    DATE
    DATETIME
    DECIMAL
    SIGNED [INTEGER]
    TIME
    UNSIGNED [INTEGER]

分享到:
评论

相关推荐

    MySQL查询把多列返回结果集拼装成一个字段

    mysql中有种可以通过join相关操作进行表与表之间的方式查询不同结果集,但是在一对多的情况下,关键查询的结果是多条的.例如:班级和学习的关系,我想很直观的看到班级和学生的情况,列表显示出班级的信息和班级的男生...

    MySQL 多表关联一对多查询实现取最新一条数据的方法示例

    但是这两个字段却在订单表里面,每次客户下单都会要求客户填写;由此可知,客户数据和订单数据是一对多的关系;那这样的话,问题就来了,我到底以订单中的哪一条数据为准呢?经过协商后一致同意以最新的一条数据为准...

    MySQL中表子查询与关联子查询的基础学习教程

    表子查询是指子查询返回的结果集是 N 行 N 列的一个表数据。 MySQL 表子查询实例 下面是用于例子的两张原始数据表: article 表: blog 表: SQL 如下: SELECT * FROM article WHERE (title,content,uid) IN ...

    mysql实现多表关联统计(子查询统计)示例

    当关联超过两张表时导致统计时数据重复,只好用子查询查出来,子查询只能查一个字段,这里用CONCAT_WS函数将多个字段其拼接 实现: 查询代码如下 SELECT b.id, b.book_name, sum( IF ( o.create_time > 0 && o....

    mysql 从一个表中查数据并插入另一个表实现方法

    mysql 从一个表中查数据并插入另一个表实现方法...类别一、 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法: INSERT INTO 目标表 SELECT * FROM 来源表 ; 例如,要将 articles

    mysql关联两张表时的编码问题及解决办法

    Mysql关联两张表时,产生错误提示Illegal mix of collations 1、先用工具把数据库、两张表的编码方式改变 2、这步很重要,需要改变字段的编码方式。 ALTER TABLE `表名` CHANGE `dev_chancode` `字段` VARCHAR(32) ...

    MySQL中联表更新与删除的语法介绍

    相信大家在日常使用mysql,可能会遇到需要同时更新两张表时,我会采用在同一个事务中使用2句sql语句分别进行更新。其实,这种需要发送2句sql语句的方法效率相对来说是比较低的,有没有只用1句sql语句就可以完成这个...

    【大厂面试题】史上最详细的一线大厂Mysql面试题详解及其答案MySQL执行计划及SQL优化

    子查询不一定需要两个表有关联字段,而连接查询必须有字段关联(所谓的主外键关系) 表关联的效率要高于子查询,因为子查询走的是笛卡尔积。 表关联可能有多条记录,子查询只有一条记录,如果需要唯一的列,最好使用...

    MySQL 从一张表update字段到另外一张表中

    使用MySQL 4.0版或更高更新您可以通过加入两个或多个表一起一表;通过加入两个表连同您可以更新一个表的记录在相关领域的总部设在另一个表。

    mysql数据库的基本操作语法

    外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系。 也就是说从表的外键值必须在主表中能找到或者为空。 当主表的记录被从表参照时,主表的记录将不...

    mysql利用group_concat()合并多行数据到一行

    假设两个表a,b,b中通过字段id与a表关联,a表与b表为一对多的关系。假设b表中存在一字段name,现需要查询a表中的记录,同时获取存储在b表中的name信息,按照常规查询,b表中有多少记录,则会显示多少行,如果需要只...

    MySQL无法创建外键的原因及解决方法

    关联2张表时出现了无法创建外键的情况,从这个博客... InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB

    全国城市mysql数据库(含拼音)

    全国城市mysql数据库,是sql格式,直接导入到mysql数据库即可使用。...另外提示,这个中国城市数据库最好跟我上传的另外一个全国省份数据库一起使用,效果会更好,因为这两个数据库本身就是有关联的。

    在MySQL字段中使用逗号分隔符的方法分享

    被分割的字段一定是有限而且数量较少的,我们不可能在一个字符串中存储无限多个字符 这个字段所属的表与这个字段关联的表,一定是一对多的关系 比如下面这个表结构所代表的content与tag这两个对象 代码如下: mysql> ...

    全国省份mysql数据库(含拼音)

    全国省份mysql数据库,sql格式,直接导入到mysql数据库即可使用。...另外提示,这个中国省份数据库最好跟我上传的另外一个全国城市mysql数据库一起使用,效果会更好,因为这两个数据库本身就是有关联的。

    一款包含系统设计和代码生成功能的自动化web平台

    5. 多对多关系:支持在两个实体之间建立多对多关联关系,会在mysql中生成一张关联表,可以设置两个实体之间是否持有对方引用,持有引用的一方会自动生成维护关联关系的功能。 6. 外键关联:在添加字段的时候,可以...

    mysql的日期和时间函数

    两个参数形式的 WEEK() 允许你指定一周是否以星期日或星期一开始,以及返回值为 0-53 还是 1-52。 这里的一个表显示第二个参数是如何工作的: 值 含义 0 一周以星期日开始,返回值范围为 0-53 1 一周以...

    阿里巴巴开源的基于MySQL的分布式数据库服务中间件 Cobar.zip

    不支持SET语句的执行,事务和字符集设置语句除外对于拆分表(一个表的数据被映射到多个MySQL数据库),不能更新已有记录的拆分字段(分库字段)值只支持MySQL数据节点。对于拆分表,插入操作须给出列名,必须包含...

    对MySQL几种联合查询的通俗解释

    两个表a、b相连接,要取出id相同的字段。 select * from a inner join b on a.aid = b.bid 这是仅取出匹配的数据。 此时的取出的是: 1 a1 b1 2 a2 b2 那么left join 指: select * from a left join b on a.aid ...

Global site tag (gtag.js) - Google Analytics