如何在mysql左连接中删除相同的名称出现?

时间:2017-01-06 05:08:42

标签: php mysql arrays codeigniter

我正在使用以下查询。

SELECT DISTINCT ph.module_head_id,
  ph.module_head, pm.module_id, 
  pm.module_name, pm.module_url
FROM pms_module_header ph
LEFT JOIN pms_module pm
ON ph.module_head_id = pm.module_head_id

现在我得到以下输出

Module_head_id  Module_head module_id module_name module_url
  1               dashboard     Null    Null        Null
  2                Employee      1      Add        test.php
  2                Employee      2      View       test1.php
  3               Report         3      Project    project.php
  3               Report         4      Client     client.php

如何删除module_head中相同名称的出现

我想在codeigniter视图中显示这些内容

dashboard
  Employee Add 
           View
  Report   Project
           Client

我正在使用array_unique函数,但它不起作用。请帮助我

1 个答案:

答案 0 :(得分:2)

这是查询,

SELECT DISTINCT ph.module_head_id,
  ph.module_head, pm.module_id, 
  pm.module_name, pm.module_url
FROM pms_module_header ph
LEFT JOIN pms_module pm
ON ph.module_head_id = pm.module_head_id
group by ph.module_head_id

只需在module_head_id上应用group,就可以了。

编辑

<table border="1" width="100%">
    <tr>
        <th>Module head</th>
        <th>Module name</th>
    </tr>
    <?php
    $module_head = '';
    foreach ($arr as $k => $v) {
        echo "<tr>";
        echo "<td>";
        if ($v['module_head'] == '' || $v['module_head'] != $module_head) {
            $module_head = $v['module_head'];
            echo $v['module_head'] . "<br/>";
        } else {
            echo " ";
        }
        echo "<td>";
        echo "<td>" . $v['module_name'] . "</td>";
        echo "<tr>";
    }
    ?>
    <table>

根据您的观点操纵。它会起作用。