列出两个连接表的结果

时间:2011-02-11 21:35:32

标签: php mysql list

我有两张表如下:

文件

id |路径|文件名

更改

id | file_id |变化

file_id 字段连接到文件表中的ID。

我对这些表的处理方法是存储更改的文件以及文件中的更改。

我想要做的是列出文件并列出该文件在该表中所做的更改。

在PHP中执行此操作的最佳和最佳方法是什么?

感谢您的帮助。

问候。

1 个答案:

答案 0 :(得分:1)

使用JOIN查询:

SELECT files.*,changes.change FROM files 
   LEFT JOIN changes ON change.file_id = files.id
   ORDER BY files.id;

这将为您提供每行包含以下内容的结果集:

  • ID
  • 文件名
  • 路径
  • 变化

使用ORDER BY查询,您可以存储最后一个:

$fileId = null;
foreach ($results as $result) {
    if ($fileId != $result['id']) {
        echo "{$result['filename']}\n";
        $fileId = $result['id'];
    }

    echo "  {$result['change']}\n";
}