Использование Query Builder в Codeigniter - Как правильно создать псевдоним? - PullRequest
0 голосов
/ 01 февраля 2019

Я построил следующий запрос с помощью построителя запросов в codeigniter 3.x

        $this->db->select('
            categories.*,
            posts.id,
            posts.category_id,
            posts.user_id,
            posts.updated_user_id,
            posts.title,
            posts.slug,
            posts.body,
            posts.post_image,
            year(posts.created_timestamp) as year, 
            month(posts.created_timestamp) as month
        ');

Выше приведено сообщение об ошибке, неизвестный столбец 'year' в 'where clause'.Я сбросил SQL, но просто не могу понять, почему SQL не может распознать год и месяц?

SELECT 
    `categories`.*, 
    `posts`.`id`, 
    `posts`.`category_id`, 
    `posts`.`user_id`, 
    `posts`.`updated_user_id`, 
    `posts`.`title`, 
    `posts`.`slug`, 
    `posts`.`body`, 
    `posts`.`post_image`, 
     year(posts.created_timestamp) as year, 
     month(posts.created_timestamp) as month 
     FROM `posts` 
     JOIN `categories` ON `categories`.`id` = `posts`.`category_id` 
     WHERE 
        `year` = '2019' 
     AND `month` = '1' 
     LIMIT 5

1 Ответ

0 голосов
/ 01 февраля 2019

это не проблема codeigniter, так как MySQL год работы - это не имя поля (пожалуйста, избегайте такого типа имени поля), его функция и выбор или вызов функции не совпадают с ее определением, поэтому вы должны поместить предложение whereтак же, как вы выбрали его.

SELECT 
    `categories`.*, 
    `posts`.`id`, 
    `posts`.`category_id`, 
    `posts`.`user_id`, 
    `posts`.`updated_user_id`, 
    `posts`.`title`, 
    `posts`.`slug`, 
    `posts`.`body`, 
    `posts`.`post_image`, 
     year(posts.created_timestamp) as year, 
     month(posts.created_timestamp) as month 
     FROM `posts` 
     JOIN `categories` ON `categories`.`id` = `posts`.`category_id` 
     WHERE 
        year(posts.created_timestamp) = '2019' 
     AND month(posts.created_timestamp) = '1' 
     LIMIT 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...