连接两个具有不同行数的mysql表

连接两个具有不同行数的mysql表,mysql,join,Mysql,Join,我有两个表tasks和task\u category: 任务 任务类别 +---------+----------------+ | ID |task_category | +---------+----------------+ | 1 | category_1 | +---------+----------------+ | 2 | category_2 | +---------+----------------+ | 3

我有两个表
tasks
task\u category

任务

任务类别

+---------+----------------+
|   ID    |task_category   | 
+---------+----------------+
|    1    |  category_1    |
+---------+----------------+
|    2    |  category_2    |
+---------+----------------+
|    3    |  category_3    |
+---------+----------------+
|    4    |  category_4    |
+---------+----------------+
我需要像这样输出html表:

 <table>
  <tr>
   <td>
   category_1
   </td>
  </tr>
  <tr>
   <td>
   task_1
   </td>
  </tr>
  <tr>
   <td>
   task_2
   </td>
  </tr>
  <tr>
   <td>
   task_3
   </td>
  </tr>
  <tr>
   <td>
   category_2
   </td>
  </tr>
  <tr>
   <td>
   task_4
   </td>
  </tr>      
 </table>

SELECT DISTINCT factor.* , cat.task_name as factors
            FROM task_category as factor
            LEFT JOIN task AS cat ON factor.id = cat.task_category_id

第1类
任务1
任务2
任务3
类别2
任务4
选择独特因子。*,cat.task\u name作为因子
从任务类别作为因素
以cat ON factor.id=cat.task\u category\u id的形式左键加入任务
此mysql查询返回重复的类别条目。。。如何连接表以获得所提供示例中的结果

SELECT task_name, task_category 
FROM task LEFT JOIN task_category 
ON task.category_id=task_category.id
然后遍历结果以构建表。
您将有重复的catogories,但不必将它们写入表中:

echo '<table>';
$last_category='DUMMY_NO_CATEGORY';
foreach ($rows as $row) { // <-- Please adapt to your database connection
  if ($row['task_category']!=$last_category) {
    echo '<tr><td>'.$row['task_category'].'</td></tr>';
    $last_category=$row['task_category'];
  }
  echo '<tr><td>'.$row['task_name'].'</td></tr>';
}
echo '</table>';
echo';
$last_category='DUMMY_NO_category';
foreach($行作为$行){//
echo '<table>';
$last_category='DUMMY_NO_CATEGORY';
foreach ($rows as $row) { // <-- Please adapt to your database connection
  if ($row['task_category']!=$last_category) {
    echo '<tr><td>'.$row['task_category'].'</td></tr>';
    $last_category=$row['task_category'];
  }
  echo '<tr><td>'.$row['task_name'].'</td></tr>';
}
echo '</table>';