简体   繁体   English

codeigniter Mysql join查询结果

[英]codeigniter Mysql join Query result

I have three tables. 我有三张桌子。 users, products (user_id is foreign key), reviews_ratings (user_id & product_id are foreign keys) 用户,产品(user_id是外键),reviews_ratings(user_id和product_id是外键)

mysql query is 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);

In result, 结果,

Array ( [0] => stdClass Object ( [id] => 14 [title] => blaaa [review] => blaaaa [rate] => 4 soooo on))

[id]=>14 is not the id of review_ratings table. [id]=>14不是rev​​iew_ratings表的id。 14 is the product_id. 14是product_id。 everything is good except this [id] value. 一切都很好,除了这个[id]值。 i want review_ratings id value in [id] . 我想要[id] review_ratings id值。 please help me to correct it. 请帮我纠正一下。

Try to use group by... 尝试使用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);

Problem solved by adding this line 通过添加此行解决了问题

$this->db->select('products.*,users.*,reviews_ratings.*');

instead of this 而不是这个

  $this->db->select('*');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM