mysql - 如何使用临时表中的列进行 MSQL 中的以下更新
问题描述
我有一个 MySQL 数据库。我想使用其他表中 concat 列中的值更新表中的列(在我的情况下是 bms_title 表中的标题列)。
SELECT * FROM(SELECT distinct t.id, t.title as Textbook,
GROUP_CONCAT(concat(ci.discipline_code, ci.code, " (" , ci.type , ")") SEPARATOR ', ') as CourseCode FROM
tms_local.bms_material m,
tms_local.bms_title t,
tms_local.bms_course c,
tms_local.bms_courseinfo ci
where t.id > 1 AND t.id = m.book_id
and c.id = m.course_id
and ci.id = c.id
and isbn != 'NA'
GROUP BY t.id) AS temporary_table;
UPDATE tms_local.bms_title
SET tms_local.bms_title.thumbnail = temporary_table.CourseCode
WHERE tms_local.bms_title.title=temporary_table.Textbook;
但我得到了错误:在where子句中不知道temporary_table.Textbook。
如何使用所选表中的 CourseCode 列更新 tms_local.bms_title.thumbnail 列?
我努力了
CREATE TEMPORARY TABLE IF NOT EXISTS temporary_table AS (SELECT distinct t.id, t.title as Textbook,
GROUP_CONCAT(concat(ci.discipline_code, ci.code, " (" , ci.type , ")") SEPARATOR ', ') as CourseCode FROM
tms_local.bms_material m,
tms_local.bms_title t,
tms_local.bms_course c,
tms_local.bms_courseinfo ci
where t.id > 1 AND t.id = m.book_id
and c.id = m.course_id
and ci.id = c.id
and isbn != 'NA'
GROUP BY t.id);
UPDATE tms_local.bms_title
SET tms_local.bms_title.thumbnail = temporary_table.CourseCode
WHERE tms_local.bms_title.title=temporary_table.Textbook;
但是得到了同样的错误。
解决方案
您需要加入 select 语句。
如下图所示:
UPDATE tms_local.bms_title t0
INNER JOIN
(SELECT
*
FROM
(SELECT DISTINCT
t.id,
t.title AS Textbook,
GROUP_CONCAT(CONCAT(ci.discipline_code, ci.code, ' (', ci.type, ')')
SEPARATOR ', ') AS CourseCode
FROM
tms_local.bms_material m, tms_local.bms_title t, tms_local.bms_course c, tms_local.bms_courseinfo ci
WHERE
t.id > 1 AND t.id = m.book_id
AND c.id = m.course_id
AND ci.id = c.id
AND isbn != 'NA'
GROUP BY t.id) AS temporary_table) t1 ON t0.title = t1.Textbook
SET
t0.thumbnail = t1.ourseCode;
推荐阅读
- python - 我需要将所有熊猫行数据保存到 JSON 中的特定字段
- c# - 微软依赖注入。如何将数据获取到构造函数注入的类深几层
- c# - 不使用 IUserType 查询数据库时如何防止 NHibernate SqlDateTime 溢出?
- html - 背景图像渐变淡出
- amazon-web-services - 使 Cloudfront 分发的缓存失效的问题
- angular - 从对象列表中删除重复项
- javascript - 复制一个文件,并重新计算新的状态
- reactjs - 在material-ui Tab容器中实现react hooks useState不起作用
- angular - 使用Angular动态添加和删除
- python - 使用 pytorch 对大图像进行补丁分类