mysql - 根据不同表中的两个相似值创建表

标签 mysql

这就是我正在尝试做的事情。
我有两个系统,它们的值不相同,但很相似。
例如,Table1 的 ID 值可能为 01234,但在第二个表中,它将被列为 someName 1234
因此,我想修剪 Table1 中的值,并在 table2 中执行类似的搜索以查找该值,最后将每个值的键插入到第三个表中。
它尝试了多种方法,但未能得到我需要的东西。
它尝试了以下操作,但意识到它只会交叉连接所有内容。

SELECT snum,shipToID,sdesc,clientStoreID FROM shipto,stores
where sdesc LIKE CONCAT('%',trim(LEADING '0' FROM clientStoreID),'%')

表格相关信息如下:

stores
snum | sdesc

shipTo
shipToID | clientStoreID

shipTo_stores
Snum | shipToID

我正在尝试使用每个表(snum、shipToID)中的键填充 Table3,其中前导 0 的 clientStoreID 的修剪就像来自商店的 sdesc。

最佳答案

尝试使用CAST()

SELECT CAST('01234' AS UNSIGNED INTEGER)

含义

SELECT snum, shipToID, sdesc, clientStoreID 
FROM shipto sh
JOIN stores st
  ON sh.clientStoreID = CAST(st.sdesc AS UNSIGNED INTEGER)

关于mysql - 根据不同表中的两个相似值创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37485607/

相关文章:

mysql - 始终将设置的秒/分钟/小时舍入为 00 mysql

javascript - 将canvas图片插入MySQL数据库

php - 使用while循环从另一个表获取总行数时MYSQL慢查询

php - 使用 PHP 将新的 MySQL 数据附加到 JSON 文件

MYSQL随机生成的id & LOAD DATA LOCAL INFILE

MySQL语法错误[Left Join]

python - 模型中的额外 ID

php - 使用单个公共(public)列计算 SQL 表中唯一行的数量

mysql - 如何用MySQL删除列中的特殊字符?

mysql - 多服务器集群设置。如何跟踪哪个服务器正在连接到父 mysql?