如何在迁移中使用内部联接时更新Laravel数据库

问题描述

我有以下直接在sql控制台中运行的sql语句,但是我需要在Laravel Migration上进行修改

短篇小说,我试图替换的列A的当前值 在tableB的columnB中具有对应值ID的tableA。

表结构如下:

tableA:
    id: int(11)
    columnA: varchar(191)

tableB:
    id: int(11)
    columnB: varchar(191)

sql控制台上运行的sql语句:

UPDATE tableA INNER JOIN tableB ON tableA.columnA = tableB.columnB SET tableA.columnA=tableB.id WHERE tableB.columnB = tableA.columnA

我当时以为它是一个原始语句:

DB::raw(UPDATE tableA INNER JOIN tableB ON tableA.columnA = tableB.columnB SET tableA.columnA=tableB.id WHERE tableB.columnB = tableA.columnA);

现在我正在创建Laravel迁移,当我尝试运行迁移时,什么也没发生。

解决方法

尝试使用DB::statement代替DB::raw,第二个查询将不运行查询。