<rmcreative>

RSS

Все заметки с тегом «JOIN»

Можно уточнить:

    (1)
  1. (1)
  1. Yii2: JOIN вернулся

    8 января 2014

    В Active Record Yii2 вернулся JOIN. Внутри всё значительно проще, чем было в Yii 1.1, но возможностей сильно больше.

    Сразу скажу, что поддержка noSQL никуда не делась. Более того, можно в одном «запросе» выбрать JOIN-ом из нескольких SQL-таблиц, а часть связанных данных забрать, например, из MongoDB.

    Отличный пример привёл ORey на англоязычном форуме:

    // Выбираем MyModel с relation1 и relation2.
    // Все три забираем запросом с JOIN.
    $query = MyModel::find()
        ->joinWith(['relation1', 'relation2']);
     
    $countQuery = clone $query;
    $pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize' => 15]);
     
    $items = $query
        ->orderBy($sort->orders)
        ->offset($pages->offset)
        ->limit($pages->limit)
        // Забираем дополнительно relation3 и relation4.
        // Фильтровать по ним нам не нужно, так что будут
        // запросы вида WHERE ID IN (1,2,3,4) или аналоги
        // для noSQL.
        ->with(['relation3', 'relation4'])
        ->all();

    Официальная документация на тему

    24 комментария
  2. SQL JOIN

    26 февраля 2011

    Очень удивился, когда не нашёл внятной схемы синтаксиса и работы JOIN в SQL. Нарисовал свою:

    SQL JOIN

    • MySQL и SQLite не поддерживают FULL JOIN. Эмулируется через UNION.
    • В MySQL CROSS JOIN эквивалентен INNER JOIN. Можно использовать как один, так и другой. В стандарте SQL это не так: INNER JOIN используется с ON, CROSS JOIN — без.
    • SQLite не поддерживает RIGHT OUTER JOIN.

    PDF версии:

    10 комментариев