JOIN
Join - это класс, который генерирует join фрагмент sql кода. Экземпляр класса получаем через фабрику (смотри раздел УСТАНОВКА).
Описание функций и методов
Метод | Описание |
---|---|
__construct($settings, $mergeMethod, $table, $column, $outColumn) |
Экземпляр класса создается в фабрике и при создании в конструктор передаются параметры:
|
linkAnd($expression) |
При создании экземпляра класса мы уже описали условие соединения таблиц, но бывает необходимо уточнить и расширить условие. Данная функция поможет это сделать. $expression – массив логических операций (смотри Where),
условия между которыми соединены связью AND. Связь между основным условием соединения
таблиц и |
linkOr($expression) |
При создании экземпляра класса мы уже описали условие соединения таблиц, но бывает необходимо уточнить и расширить условие. Данная функция поможет это сделать. $expression – массив логических операций (смотри Where),
условия между которыми соединены связью OR. Связь между основным условием соединения
таблиц и |
generate() | Генерирует sql и массив биндов. |
getAlias() | Получить сгенерированный псевдоним таблицы. |
getSql() |
Получить строку sql запроса, данные формируются после вызова функции generate() .
|
getBind() |
Получить массив биндов. Данные формируются после вызова функции generate() .
|
Примеры
Пример 1
// Создаем экземпляры классов Join с помощью фабрики, подробнее // в документации в разделе УСТАНОВКА (здесь случай компонента для yii2). $coursework = Yii::$app->gp->leftJoin('coursework', 'student_id', 's.id')->generate(); print_r($coursework->getAlias()); // Результат: // coursework_joM9YuTTfW print_r($coursework->getSql()); // Результат: // left JOIN coursework coursework_joM9YuTTfW ON coursework_joM9YuTTfW.student_id = s.id print_r($coursework->getBind()); // Результат: // []
Пример 2
// Создаем экземпляры классов Join с помощью фабрики, подробнее // в документации в разделе УСТАНОВКА (здесь случай компонента для yii2). $coursework = Yii::$app->gp->innerJoin('coursework', 'student_id', 's.id') ->linkAnd(['semester_number', '>', 2]) ->generate(); print_r($coursework->getAlias()); // Результат: // coursework_Nd1n5T7c0r print_r($coursework->getSql()); // Результат: // inner JOIN coursework coursework_Nd1n5T7c0r ON coursework_Nd1n5T7c0r.student_id = s.id and (semester_number > :al_where_M1kEcHzZyy) print_r($coursework->getBind()); // Результат: // [ // [al_where_M1kEcHzZyy] => 2 // ]