GithubHelp home page GithubHelp logo

Comments (2)

exru avatar exru commented on May 27, 2024 1

I guess be appropriate the
$db->update('table_name',['set'], ['where'], ['from'=>$query]);
or
$db->update(['table_name', 'from'=>$query],['set'], ['where'], ['params']);

from db.

SilverFire avatar SilverFire commented on May 27, 2024

As a result of #10287 and Gitter talk.

@exru needs to make an UPDATE query from another query.

Assume we have the following query:

$query = new \yii\db\Query()
          ->select(['id', 'winr'])
          ->from('leaders')
          ->where(['state' => User::STATE_BLOCKED]);
// yeah, it's a simple one and we manage with it without the feature,
// but imagine that it's huge, with tons of joins, expressions in select, etc

and we need to update another table from query. The expected SQL should be like @exru posted in the header.

@exru suggests to add a chained update() to Query:

     $query->update('bet', ['status' => new Expression('subquery.winr')], 'id = subquery.id');

But I prefer to modify Command::update() to pass query in addition to the table name

     $queryBuilder->update(['bet', 'subquery' => $query], ['status' => new Expression('subquery.winr')], 'id = subquery.id');

or

     $queryBuilder->update('bet', ['status' => new Expression('subquery.winr')], 'id = subquery.id')->from(['subquery' => $query]);

@yiisoft/core-developers

from db.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.