[英]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
不是review_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.