我有两个桌子
我在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'
我以前从未尝试过。有人可以指导我如何执行此操作吗?我在哪里做错了?
答案 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