首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >创建镶件...Laravel中的Select语句

创建镶件...Laravel中的Select语句
EN

Stack Overflow用户
提问于 2014-08-28 01:34:57
回答 5查看 41K关注 0票数 25

我需要为Laravel转换此查询,并且在尝试创建插入时遇到问题...使用Laravel的Eloquont ORM或查询的Select语句。我不确定我该如何创建这个查询。

Insert into Demand (Login, Name, ApptTime, Phone, Physician, Location, FormatName, FormatDate, FormatTime, ApptDate, FormatPhone, cellphone)
Select Login, Name, ApptTime, Phone, Physician, Location, FormatName, FormatDate, FormatTime, ApptDate, FormatPhone, cellphone from " . [dbname] . "
    Where " . $where_statement

如何使用Laravel的ORM创建此查询?

编辑:我不确定这是否清楚,但我考虑的是1个查询,就像他们这里的http://dev.mysql.com/doc/refman/5.0/en/insert-select.html一样。

EN

回答 5

Stack Overflow用户

发布于 2015-11-26 23:47:12

您可以使用:

DB::insert("insert into contacts(contact_id,contact_type,account_id,created_at,updated_at) select f.id,'App\\Friend',f.account_id,f.created_at,f.updated_at from friends as f where f.id=?",[16]);
票数 13
EN

Stack Overflow用户

发布于 2019-04-16 03:55:14

我使用了DB::statement("...");

DB::statement("INSERT INTO table (SELECT)");
票数 4
EN

Stack Overflow用户

发布于 2018-08-09 13:50:45

在Laravel 5.5中,我创建了一个帮助函数,以便更容易地执行:

class QueryHelper
{

    /**
     * @param string $model
     * @param array $columns
     * @param Builder $select
     * @return bool
     */
    public static function insertFromSelectStatement($model, $columns, $select)
    {
        /** @var \Illuminate\Database\Query\Builder $query */
        $query = (new $model)->getQuery();
        $sql = "insert into {$query->from} (". implode(', ', $columns) .") {$select->toSql()}";
        return $query->getConnection()->insert($sql, $select->getBindings());
    }
}

例如:

$notification = Notification::create([
    'title' => 'this is title',
    'message' => 'this is message',
]);
$now = DB::raw("'". Carbon::now()->toDateTimeString() ."'");
$selectActivatedUsers = User::select('id', $notification->id, $now, $now)->where('status', '=', 'activated');
// insert notifications to activated users
QueryHelper::insertFromSelectStatement(UserNotification::class, ['user_id', 'notification_id', 'created_at', 'updated_at'], $selectActivatedUser);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25533608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档