MySQL查询:只有一个表和第二个表存在的所有数据

时间:2013-02-15 11:39:17

标签: mysql subquery isnull

我的数据库中有两个表。一个是配置文件的列表(代码示例中的表b)。第二个是日志表(代码示例中的表a),其中包含更新配置文件的记录。

我想执行一个查询,为我提供网站上的每个个人资料。有些配置文件尚未更新,因此日志表中没有记录,我希望它们也显示为0时间戳。

以下代码将仅返回两个表中存在ids的行。

SELECT b.id, b.name, b.linkname, IFNULL(MAX(a.date),0) as lastupdate
FROM links a, list b
WHERE b.id=a.id

我怎样才能使它工作,所以我得到一个完整的配置文件列表和一个存在的最新时间戳,如果它不存在则为0时间戳?

提前致谢。 希望这不是微不足道的,我一直在寻找,但无法找到一个例子。

1 个答案:

答案 0 :(得分:0)

使用LEFT JOIN获取数据..使用GROUP BY以避免重复数据..因为您在log table中为单个配置文件提供了多个条目..

SELECT b.id, b.name, b.linkname, IFNULL(MAX(a.date),0) as lastupdate
FROM list b
LEFT JOIN links a ON (a.id=b.id)
GROUP BY b.id;