我正在运行此查询,
$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();
现在这个查询返回一篇新闻文章,它应该从新闻资产表中返回任何属性资产,新闻资产表与新闻有1:n关系,所以新闻文章可能拥有无限量的资产但是资产包含只有1篇新闻文章。
我的问题是,当我运行此查询时,只返回一篇新闻文章的资产,为什么会这样?
答案 0 :(得分:0)
也许你真的在资产表中有一行,但如果没有,我想你的JOIN是错的, 也许你正在向右做或向右做
答案 1 :(得分:0)
尝试以下查询。
$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');
答案 2 :(得分:0)
首先,至于我的想法,你应该选择新闻并加入news_assets
,因为你的资产属于我理解的一篇新闻文章。
此外,您$query->row_array();
只返回一行,但根据this,您应该使用1行以上:
foreach ($query->result_array() as $row) {
echo $row['title'];
echo $row['name'];
}