-1

私は2つのテーブルを持っていtasksますtask_category

タスク

+---------+----------------+-----------+
|   ID    |task_category_id| task_name |
+---------+----------------+-----------+
|    1    |        1       |    task1  |
+---------+----------------+-----------+
|    2    |        1       |    task2  |
+---------+----------------+-----------+
|    3    |        1       |    task3  |
+---------+----------------+-----------+
|    4    |        2       |    task4  |
+---------+----------------+-----------+
|    5    |        2       |    task5  |
+---------+----------------+-----------+
|    6    |        3       |    task6  |
+---------+----------------+-----------+
|    ...  |      ...       |    ...    |
+---------+----------------+-----------+

task_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

このmysqlクエリは、重複したカテゴリエントリを返します...提供された例のようにテーブルを結合して結果を取得する方法は?

4

1 に答える 1

2
SELECT task_name, task_category 
FROM task LEFT JOIN task_category 
ON task.category_id=task_category.id

次に、結果を繰り返し処理してテーブルを作成します。
重複するカテゴリがありますが、テーブルに書き込む必要はありません。

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>';

(PHPを想定)

于 2013-01-14T09:47:05.383 に答える