如何获得所有记录从两个表与三个连接在CodeIgniter


How to get all records from two tables with three joins in CodeIgniter?

我有三个表(问题,答案,用户),我想查询用户发布的所有问题和答案。

下面是我的代码:
$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;

我对你的文字做了一些修改,如果你想要的话,复制并测试一下