如何将列数据从一个表复制到MySql中的另一个表?

时间:2020-07-23 12:04:34

标签: php mysql laravel

我有两个桌子

  1. 用户
  2. 活动

我在users表中有一列称为activity_date。现在,我想将该列的数据添加到“活动”表中。 为此,我在Activity表中引入了一个名为activity_date的新字段。

我正在使用此查询将数据从users表复制到activity

DB::statement('UPDATE `activity` (`activity_date`) SELECT `activity_date` FROM `users` WHERE `users.id` = `activity.user_id`');

运行迁移时,它会返回错误

[PDOException]                                                                      
SQLSTATE[233652]: Column not found: 1054 Unknown column 'users.id' in 'where clause'  

我以前从未尝试过。有人可以指导我如何执行此操作吗?我在哪里做错了?

2 个答案:

答案 0 :(得分:0)

您应该连接表,然后使用DB :: raw

DB::table('activity')->join('users','activity.user_id','=','users.id')
        ->update(['activity.activity_date'=>DB::raw('users.activity_date')]);

答案 1 :(得分:0)

update users set activity_date=(SELECT activity_date from activity where id='1')where id='1'

这将从表活动中获取ID = 1的acitivity_date,并在用户ID = 1的users表中更新acitivity_date。

表: (用户):ID,名称,activity_date (活动)ID,activity_date

相关问题