#php #mysql #codeigniter #activerecord #relational-database
#php #mysql #codeigniter #activerecord #реляционная база данных
Вопрос:
Я выполняю этот запрос,
$this->db->select('news.news_id, news.title, news.article, news.date_posted, news_assets.news_assets_id, news_assets.url')
->from('news_assets')
->join('news', 'news_assets.news_news_id = news.news_id', 'left')
->order_by('news.date_posted', 'DESC');
$query = $this->db->get();
return $query->row_array();
Теперь этот запрос возвращает новостную статью, и он должен возвращать любые приписываемые активы из таблицы news assets, таблица news assets имеет отношение 1: n к новостям, поэтому новостная статья может иметь бесконечное количество активов, но в активе может быть только 1 новостная статья.
Мой вопрос в том, что когда я запускаю этот запрос, возвращается только один ресурс для новостной статьи, почему это должно быть?
Ответ №1:
Прежде всего, что касается моих мыслей, вы должны выбрать новости и присоединиться news_assets
, потому что, насколько я понимаю, ваши активы принадлежат одной новостной статье.
Также у вас есть $query->row_array();
, который возвращает только одну строку, но если у вас есть 1 строк, которые вы должны использовать, в соответствии с этим:
foreach ($query->result_array() as $row) {
echo $row['title'];
echo $row['name'];
}
Ответ №2:
возможно, у вас действительно есть одна строка в таблице активов, но если нет, я предполагаю, что ваше СОЕДИНЕНИЕ неверно, возможно, вы делаете left вместо right или наоборот
Комментарии:
1. Это лучше всего подходит как комментарий, а не как ответ
Ответ №3:
Попробуйте выполнить запрос ниже.
$this->db->select('news.news_id, news.title, news.article, news.date_posted, news_assets.news_assets_id, news_assets.url');
$this->db->from('news_assets');
$this->db->join('news', 'news.news_id=news_assets.news_news_id', 'left');
$this->db->order_by('news.date_posted', 'DESC');
Комментарии:
1. соединение в столбце не было написано должным образом.
2. извините, вы должны указать это в своем ответе, поскольку это было немного сложно определить