我需要表目录中的更新键并编写查询(mysql 查询是正确的):
update attributes a inner join catalog c on a.parent_id = c.id set a.key = c.left_key
和 Laravel 数据库:
DB::table('attributes as a')
->join(catalog as c', 'a.parent_id', '=', 'c.id')
->update([ 'a.key' => 'c.left_key' ]);
这是正确的查询,但是 DB::table ... 将表目录中的所有键都设为 0。 我写
DB::statement('update attributes a inner join catalog c on a.parent_id = c.id set a.key = c.left_key;');
这是工作!但我不明白为什么 DB::table with join 和 update 不起作用
最佳答案
你可以这样尝试:
DB::table('attributes as a')
->join('catalog as c', 'a.parent_id', '=', 'c.id')
->update([ 'a.key' => DB::raw("`c`.`left_key`") ]);
关于php - 拉维尔 5.2。数据库表 + 加入更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40329670/