Php Mysql join返回多行结果,而不是每个实例一行

Php Mysql join返回多行结果,而不是每个实例一行,php,mysql,datatable,Php,Mysql,Datatable,我有三张桌子:tbl_天、tbl_时段和tbl_预订,如下所示 顾客应该在一天内预订一个时段 我正在使用以下查询: $slots = $this->common->slots(); if ($slots != NULL) { foreach ($slots as $C): $start = $C->start; $stop = $C->stop; $

我有三张桌子:tbl_天tbl_时段tbl_预订,如下所示

顾客应该在一天内预订一个时段

我正在使用以下查询:

$slots = $this->common->slots();

    if ($slots != NULL) {
        foreach ($slots as $C):
            $start = $C->start;
                 $stop = $C->stop;
                 $slotspace= $start." to ".$stop;

                 $available='Available';
                 $booked ='Booked';

                $sum_col[] = "  IF(tbl_bookings.slot_id =". $C->id.",'".$booked."','".$available."') AS '" . $slotspace . "'";

        endforeach; }


    $sqlquery = $this->db->query("SELECT tbl_days.date_day,

    " . implode(",", $sum_col) . "

    FROM tbl_days
    LEFT JOIN tbl_bookings ON tbl_bookings.date = tbl_days.date_day
    LEFT JOIN tbl_slots ON tbl_slots.id = tbl_bookings.slot_id
    LEFT JOIN tbl_fields ON tbl_fields.id = tbl_bookings.field_id 
       ");
    return $sqlquery->result();
但是,结果显示为:

预期结果应为:

请注意在同一日期多行上如何显示预订信息

  • 从今天起的日期(从今天起接下来的7天)

  • 在一行上显示当天的插槽

  • 显示日期,无论是否有预订,如日期29

  • 请帮助我做这件事。
    请注意,我使用的是数据表。

    所以每个条目都显示在一个新行中,而不是一行中相互连接的所有条目,对吗?我在过去也遇到过同样的问题,解决方法是第二次
    foreach
    。第二个应该查看所有记录,看看一个是否连接到另一个


    请参阅我的问题:

    我已经看过了,不幸的是,它没有解决我的问题。