Skip to content

Changed visibility of waDbQuery::getSQL() to public - #276

Open
danf0rth wants to merge 2 commits into
webasyst:devfrom
danf0rth:dev
Open

danf0rth wants to merge 2 commits into
webasyst:devfrom
danf0rth:dev

Conversation

@danf0rth

Copy link
Copy Markdown

Можно будет строить вложенные запросы.

Используется вот так:

$shop_category_products = new waDbQuery(new shopCategoryProductsModel());
$subquery = $shop_category_products->select('product_id')->where('category_id IN (i:ids)', array('ids' => $descendant_ids))->getSQL();
// получаем строку, что-то вроде
// SELECT product_id FROM shop_category_products WHERE category_id IN (1, 2, 3)
// которую можно использовать в подзапросах
$this->where[] = "p.id IN ({$subquery})";

Раньше можно было и через строку делать, зато теперь:

  • Не нужно делать implode() если передаешь параметры в where, используется waDbStatement + placeholders
  • Не нужно указывать название таблицы, т.к. оно содержится в модели, которая передается в конструктор

It allows to use query builder more flexible way, add to subqueries etc.
@genasyst

Copy link
Copy Markdown
Contributor

Разумно++

@SergeR

SergeR commented Dec 7, 2018

Copy link
Copy Markdown
Contributor

Хорошая идея, поддерживаю!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants