我认为这是你在找什么,如果你想显示所有即使他们没有任何活动也是如此。
sekect task.id, task.title, activity.id, activity.title
from task
left join activity
order by task.createdat, activity.createdat desc
编辑:我会提供一个简短的解释,可能会帮助你更多地理解。
该声明基本上告诉数据库抓取任务表和活动表中特定列“id”和“title”中的所有信息 - 这是sekect task.id, task.title, activity.id, activity.title
子句。
任何查询将始终使用关键字from
搜索至少一个表。在这种情况下,我们使用from task
,它将搜索任务表。但是,对于此示例,您需要两个表的联合,需要使用关键字join
。使用join
可以让我们以多种方式搜索多个表格。在这种情况下,我们使用了left join
;如果你想进一步解释这个问题,请发表评论。最后,我们只是通过任务创建日期,然后是活动创建日期和指定降序(最早的最早的,最新的最后一个)来排序数据。
请注意,一般来说,使用select *
不是最好的主意。它现在可能会满足您的需求,但如果您要构建更多查询,则需要指定要显示的列,如我的示例中所示。
每个任务都会在“活动”表中有一个条目吗?排序中活动和任务创建日期的优先顺序是什么?请将这些表格作为[示例SQL代码](http://sscce.org/)发布。请注意,您可以[将行格式化为代码](http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks)缩进四个空格。编辑器工具栏中的“{}”按钮可以为您做到这一点。单击编辑器工具栏中的橙色问号以获取更多信息和格式化提示。 – outis 2011-06-06 00:35:06
最后,我在我的任务表中添加了一个名为“updatedat”的新列,并且当我更改任务标题或描述时以及在向其添加新活动时设置此列... – 2011-06-16 22:51:12