You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将表B的'Episode no'值改为与表A一致及实现两表连接?

解决方案

一、修改表B的Episode no值

既然已经将字段类型改为numeric,可以通过类型转换把带小数的数值转为整数,对齐表A的数据,执行以下SQL语句:

-- MySQL环境下
UPDATE 表B
SET `Episode no` = CAST(`Episode no` AS UNSIGNED);

-- SQL Server环境下
UPDATE 表B
SET `Episode no` = CAST(`Episode no` AS INT);

如果需要精准过滤只修改1.0这类整数型小数的行,可以添加WHERE条件:

UPDATE 表B
SET `Episode no` = CAST(`Episode no` AS UNSIGNED)
WHERE `Episode no` = FLOOR(`Episode no`);

二、两张表的连接实现

现在两个表的Episode no字段类型一致且值对齐,可通过以下几种常见连接方式实现关联:

1. 内连接(INNER JOIN)

仅返回两张表中Episode no匹配的行:

SELECT *
FROM 表A
INNER JOIN 表B ON 表A.`Episode no` = 表B.`Episode no`;

2. 左连接(LEFT JOIN)

返回表A的全部行,以及表B中匹配的行(无匹配时表B字段为NULL):

SELECT *
FROM 表A
LEFT JOIN 表B ON 表A.`Episode no` = 表B.`Episode no`;

3. 右连接(RIGHT JOIN)

返回表B的全部行,以及表A中匹配的行(无匹配时表A字段为NULL):

SELECT *
FROM 表A
RIGHT JOIN 表B ON 表A.`Episode no` = 表B.`Episode no`;

4. 全连接(FULL JOIN)

返回两张表的所有行,匹配行合并,不匹配部分对应字段为NULL(MySQL不支持原生FULL JOIN,可通过UNION组合左/右连接实现):

SELECT * FROM 表A LEFT JOIN 表B ON 表A.`Episode no` = 表B.`Episode no`
UNION
SELECT * FROM 表A RIGHT JOIN 表B ON 表A.`Episode no` = 表B.`Episode no`;

内容的提问来源于stack exchange,提问作者Kumari Nikhita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:58:29