Активная запись Codeigniter COUNT возвращает ноль - PullRequest
0 голосов
/ 01 сентября 2018

Мне нужно выбрать некоторые данные из таблицы и сосчитать связанные изображения из другой таблицы. Код, который я использую, следующий (из файла модели)

$this->rci_db->select (" 
        $this->tbl_register.id,
        $this->tbl_register.cor,
        DATE_FORMAT($this->tbl_register.registerdate, '%d/%m/%Y') AS registerdate,
        $this->tbl_registrations.registration,
        $this->tbl_aircrafts.cn,
        $this->tbl_aircrafts.built,
        $this->tbl_manufacturers.manufacturer, 
        $this->tbl_models.type AS model,
        COUNT($this->tbl_images.imgid) AS count
        ");
    $this->rci_db->from("$this->tbl_register");
    $this->rci_db->join("$this->tbl_registrations", "$this->tbl_registrations.rid = $this->tbl_register.rid", 'left');
    $this->rci_db->join("$this->tbl_aircrafts", "$this->tbl_register.aid = $this->tbl_aircrafts.aid", 'left');
    $this->rci_db->join("$this->tbl_manufacturers", "$this->tbl_manufacturers.mid = $this->tbl_aircrafts.mid", 'left');
    $this->rci_db->join("$this->tbl_models", "$this->tbl_models.tid = $this->tbl_aircrafts.tid", 'left');
    $this->rci_db->join("$this->tbl_images", "$this->tbl_register.id = $this->tbl_images.id", 'left');

    $this->rci_db->where("$this->tbl_register.rid", $rid);

    $query = $this->rci_db->get();

    if ($query->num_rows() > 0)
    {
        return $query->result();
    }
    return false;

Запрос возвращает значение NULL для оператора COUNT, и я не могу понять, что не так. Другие данные возвращаются правильно Спасибо за любую помощь.

1 Ответ

0 голосов
/ 01 сентября 2018

Это количество находится в другой таблице, поэтому вы должны как-то связать их в своем запросе. Вместо присоединения в этом случае может быть просто использовать дополнительный выбор.

Что-то вроде этого в вашем выборе:

$this->rci_db->select (" 
        $this->tbl_register.id,
        $this->tbl_register.cor,
        DATE_FORMAT($this->tbl_register.registerdate, '%d/%m/%Y') AS registerdate,
        $this->tbl_registrations.registration,
        $this->tbl_aircrafts.cn,
        $this->tbl_aircrafts.built,
        $this->tbl_manufacturers.manufacturer, 
        $this->tbl_models.type AS model,
        (SELECT COUNT($this->tbl_images.imgid) FROM $this->tbl_images WHERE $this->tbl_register.id = $this->tbl_images.id) AS count
        ");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...