Опять запросы SQL в ICMS2

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 24 ноября 2015 в 07:48
И так продолжая работу столкнулся с простой задачей.
Надо из двух таблиц(основной) и дополнительной вывести информацию по последним 10 записям. Создаю модель.
  1.  
  2. public function last10() {
  3.  
  4. $this->joinInner('dogovora', 'd', 'i.id=d.id_abonent');
  5. $this->orderBy('id','DESC');
  6. $this->limit('10');
  7. return $this->get('abonent', 'id');
  8.  
  9.  
  10. }
ВАЖНО! может кому пригодиться, по умолчанию при JOIN INNER в ICMS2 присваивается переменная " i ". Так что ее использовать нельзя.


Стоит задача получить тип запроса:
  1. SELECT i.*, d.* FROM cms_abonent i INNER JOIN cms_dogovora d ON i.id = d.id_dogovor
По итогу логично получаем только:
  1. SELECT i.* FROM {#}abonent i INNER JOIN cms_dogovora as d ON i.id=d.id_abonent ORDER BY i.id DESC LIMIT 10
Вопрос, как добавть еще выбор полей d.*

Или все приводить к произвольным запросах SQL?
#2 24 ноября 2015 в 08:23
  1. $this->select('d.*');
#3 24 ноября 2015 в 09:25
Спасибо! То что надо.

Рабочий скрипт для тех кому лень:

  1. public function last10() {
  2.  
  3. $this->joinInner('dogovora', 'd', 'i.id=d.id_abonent'); //Добавляем вторую таблицу где будет выбирать, и условия выбора
  4. $this->orderBy('id','DESC');//Делаем сортировку по id первой таблицы DESC
  5. $this->limit('10');//Ограничиваем вывод 10 строками результата
  6. $this->select('d.*');// Добавляем переменную нужную для SELECT
  7. return $this->get('abonent', 'id');//Возвращаем результат
  8.  
  9. // SELECT u.id, u.fio, d.adres_tariff, d.name_tariff FROM cms_abonent u INNER JOIN cms_dogovora d ON u.id = d.id_dogovor
  10. }
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.