codeigniter Mysql join 查询结果
Posted
技术标签:
【中文标题】codeigniter Mysql join 查询结果【英文标题】:codeigniter Mysql join Query result 【发布时间】:2017-09-27 06:41:51 【问题描述】:我有三张桌子。 用户, 产品(user_id 是外键), reviews_ratings(user_id & product_id 是外键)
mysql查询是
$pid = some id;
$this->db->select('*');
$this->db->from('reviews_ratings');
$this->db->join('users', 'users.id = reviews_ratings.user_id');
$this->db->join('products', 'products.id = reviews_ratings.product_id ');
$this->db->where('reviews_ratings.id >', $pid);
$this->db->order_by('reviews_ratings.id', 'DESC');
$this->db->limit(1);
结果,
Array ( [0] => stdClass Object ( [id] => 14 [title] => blaaa [review] => blaaaa [rate] => 4 soooo on))
[id]=>14
不是 review_ratings 表的 id。 14 是 product_id。一切都很好,除了这个[id]
值。我想要[id]
中的 review_ratings id 值。
请帮我纠正它。
【问题讨论】:
【参考方案1】:尝试使用 group by...
$pid = some id;
$this->db->select('*');
$this->db->from('reviews_ratings');
$this->db->join('users', 'users.id = reviews_ratings.user_id');
$this->db->join('products', 'products.id = reviews_ratings.product_id ');
$this->db->where('reviews_ratings.id >', $pid);
$this->db->order_by('reviews_ratings.id', 'DESC');
$this->db->group_by('reviews_ratings.id');
$this->db->limit(1);
【讨论】:
它返回 id=14 因为您正在检查products.id = reviews_ratings.product_id
或显示表格更新您的问题
问题已解决。感谢您的时间和评论@gopalbhuva【参考方案2】:
通过添加此行解决问题
$this->db->select('products.*,users.*,reviews_ratings.*');
而不是这个
$this->db->select('*');
【讨论】:
以上是关于codeigniter Mysql join 查询结果的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter MySQL a Join Query 与结果中的列名冲突
使用 Mysql 和 Codeigniter 连接 4 个表
PHP Codeigniter MySQL 查询 - 将 4 个表连接在一起,其中 3 个表使用每个表中的一列分组