当前位置: 首页 > 知识库问答 >
问题:

如何在mysql查询的update语句中连接多个表[重复]

傅阿苏
2023-03-14

我有表my_employees,my_departments,my_empdetails,my_periods
和下面的查询在Oracle的旧join语句中。我想用mysql语法转换它,但我无法实现。请帮助

UPDATE my_employees a SET 
                               a.attribute1, a.attribute2, a.attribute3, a.attribute4,
                               a.attribute5, a.attribute6, a.attribute7, a.attribute8,
                               a.attribute9, a.attribute10, a.attribute11, a.attribute12,
                               a.attribute13, a.attribute14, a.attribute15, a.attribute16,
                               a.attribute17, a.attribute18, a.attribute19, a.attribute20 = 
                        (SELECT b.attribute1, b.attribute2, b.attribute3, b.attribute4,
                               b.attribute5, b.attribute6, b.attribute7, b.attribute8,
                               b.attribute9, b.attribute10, b.attribute11, b.attribute12,
                               b.attribute13, b.attribute14, b.attribute15, b.attribute16,
                               b.attribute17, b.attribute18, b.attribute19, b.attribute20
                          FROM my_departments b, my_emp_details c, my_periods p
                         WHERE b.dept_seq_id(+) = c.dept_seq_id
                           AND a.person_seq_id = c.person_seq_id
                           AND c.period_seq_id = p.period_seq_id
                           AND p.period_status = 'CURRENT')
                         WHERE a.person_seq_id = l_person_seq_id;

共有1个答案

富凯旋
2023-03-14

试试看:

UPDATE my_employees a  
INNER JOIN my_departments b ON a.person_seq_id = b.person_seq_id 
INNER JOIN my_emp_details c ON b.dept_seq_id = c.dept_seq_id
INNER JOIN my_periods p ON c.period_seq_id = p.period_seq_id AND p.period_status = 'CURRENT' 
SET a.attribute1 = b.attribute1, a.attribute2 = b.attribute2, a.attribute3 = b.attribute3, 
     a.attribute4 = b.attribute4, a.attribute5 = b.attribute5, a.attribute6 = b.attribute6, 
     a.attribute7 = b.attribute7, a.attribute8 = b.attribute8, a.attribute9 = b.attribute9, 
     a.attribute10 = b.attribute10, a.attribute11 = b.attribute11, a.attribute12 = b.attribute12, 
     a.attribute13 = b.attribute13, a.attribute14 = b.attribute14, a.attribute15 = b.attribute15, 
     a.attribute16 = b.attribute16, a.attribute17 = b.attribute17, a.attribute18 = b.attribute18, 
     a.attribute19 = b.attribute19, a.attribute20 = b.attribute20;
 类似资料:
  • 我正在尝试更新一个名为< code>incode_warrants的表,并将< code>warn_docket_no设置为< code>incode_violations表中的< code>viol_docket_no。 我在Postgres 9.3中有以下SQL查询,但当它触发时,我得到以下错误: 我更像是一个主动记录的人,所以我的原始SQL技能严重不足。我想知道是否有人可以帮助我指出正确的方

  • 本文向大家介绍详解MySQL中的分组查询与连接查询语句,包括了详解MySQL中的分组查询与连接查询语句的使用技巧和注意事项,需要的朋友参考一下 分组查询 group by group by 属性名 [having 条件表达式][ with rollup] “属性名 ”指按照该字段值进行分组;“having 条件表达式 ”用来限制分组后的显示,满足条件的结果将被显示;with rollup 将会在所

  • 问题内容: 我正在使用+ + + 。 我有4个DELETE,并且只需要1个数据库请求,因此我将DELETE命令与“;” …相连,但是它总是失败。 它引发此错误: 但是,如果我将此SQL粘贴到PhpMyAdmin中,它将始终成功… 如果我在单个查询中写它也是成功的。 感谢帮助! 问题答案: 我猜您正在使用node-mysql。( 但也应该适用于 node- mysql2 ) 该文件说: 出于安全原因

  • 我有这张桌子 我想根据和来计算反应的数量。我试过这个查询。 谁能告诉我如何正确地做到这一点?

  • 本文向大家介绍如何避免MySQL查询中的OR语句过多?,包括了如何避免MySQL查询中的OR语句过多?的使用技巧和注意事项,需要的朋友参考一下 使用MySQL避免太多的OR语句。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是避免在MySQL查询中使用太多OR语句的查询,即使用- 这将产生以下输出-

  • 问题内容: 这合法吗? 问题答案: 对于它的价值,并取决于是否将相同的数据插入到相同的表中,最好用一个插入插入多个值, 例如