如果从另一个表加入时包含重复项,则在记录中显示一个名称

时间:2017-04-07 01:20:28

标签: php mysql

我有两张桌子。一个名为'markers',包含ID(pk),名称,地址和另一个名为'markers_date'的表,其中包含'markers_id,date,date2,time。

我没有任何问题可以像json一样回应它。但是,我只想显示名称和地址一次,并显示名称的相应日期和时间,有多个日期和时间。

PHP

$markers = array();
$qry = "SELECT markers.name, markers.address, markers_date.date, markers_date.date2, markers_date.time FROM markers, markers_date WHERE markers_date.markers_id = markers.id ORDER BY markers.name";

$result = mysqli_query($dbConnect, $qry);

while($row = mysqli_fetch_object($result)) {

    $markers[] = $row;

}

echo '{"markers":'.json_encode($markers).'}'; here

我收到的输出如下:

          Atlantic Yacht Club     5 New St          3/31     5/30     6:30-9:00pm
          Atlantic Yacht Club     5 New St          4/30     6/16     4:30-7:00pm
          VFW                  145 Greenwich St     4/22              6:30-9:00pm
          VFW                  145 Greenwich St     4/27     4/30     6:30-9:00pm
          VFW                  145 Greenwich St     7/22              6:30-9:00pm

我真正想要的是:

          Atlantic Yacht Club     5 New St          3/31     5/30     6:30-9:00pm
                                                    4/30     6/16     4:30-7:00pm

          VFW                  145 Greenwich St     4/22              6:30-9:00pm
                                                    4/27     4/30     6:30-9:00pm
                                                    7/22              6:30-9:00pm

我的问题是,这会在SQL语句中控制还是以某种方式从PHP数组控制?

由于

1 个答案:

答案 0 :(得分:1)

一种方法是在PHP中迭代您的有序结果集,然后在我们第一次看到名称和地址的组合时,有选择地删除标记名称和地址。

def get_update():
    time_updated = YourModel.objects.last().last_updated
    return(time_updated)