我有三个表(问题,答案,用户),我想查询用户发布的所有问题和答案。
下面是我的代码:$query = $this->db->select('user.*,questions.*,answers.*')
->from('user')
->join('questions','questions.user_id = user.u_id','LEFT')
->join('answers','answers.user_id = user.u_id','LEFT')
->where('user.u_id',$profile[0]['u_id'])
->group_by('user.u_id')
->get();
echo $query->num_rows();
我在我的表中有1个张贴的问题和1个答案,但是当我尝试这个代码时,它只给我1行。
尝试使用方法..
像这样用单行写你的查询$query= "select * from user where" ;
也是如此(这只是您必须编写查询的查询示例)
if ($result = mysqli_query($connection, $query )) {
/* fetch associative array */
while ($res = mysqli_fetch_assoc($result)) {
print_r($res);
}
mysqli_free_result($result);
}
在这里$connection是你的数据库连接
您是否尝试过外连接,而不是左连接?也许左外连接可以解决你的问题,试试吧。
哦,而不是'num_rows()',我想你只是想用'row()'来检索所有表的数据
$this->db->select('user.*,questions.*,answers.*');
$this->db->join('questions','questions.user_id = user.u_id','OUTER LEFT');
$this->db->join('answers','answers.user_id = user.u_id','OUTER LEFT');
$this->db->where('user.u_id',$profile[0]['u_id']);
$this->db->group_by('user.u_id')
$query = $this->db->get('user')->row();
echo $query;
我对你的文字做了一些修改,如果你想要的话,复制并测试一下