这是我的SQLFIDDLE
基本上我有三个表,一个问题,期刊和期刊详细信息。 我想在一个查询中使用以下表示方式。
class TimelineViewController: UIViewController, TimelineComponentTarget {
var timelineComponent: TimelineComponent<Post, TimelineViewController>!
override func viewDidLoad() {
super.viewDidLoad()
timelineComponent = TimelineComponent(target: self)
self.tabBarController?.delegate = self
}
适用的规则是X是最大的期刊&#39;创建日期&#39; fixed_version_id&#39; == 55存在。
请帮忙。
谢谢,
答案 0 :(得分:1)
我建议您首先获取符合您要求的所有期刊的详细信息:
SELECT *
FROM journal_details
WHERE property = 'fixed_version_id' AND value = '55';
然后,您可以使用这些值来获取符合此要求的journal
行的创建日期:
SELECT j.issue_id, MAX(j.created_on) AS created_on
FROM journals j
JOIN journal_details jd ON jd.journal_id = j.id AND jd.property = 'fixed_version_id' AND jd.value = '55'
GROUP BY j.issue_id;
从这些结果中,您可以加入以获取所有issues
。如果使用外部联接,则对于不符合条件的任何日记帐,您将获得null:
SELECT i.id, i.status_id, tmp.created_on
FROM issues i
LEFT JOIN(
SELECT j.issue_id, MAX(j.created_on) AS created_on
FROM journals j
JOIN journal_details jd ON jd.journal_id = j.id AND jd.property = 'fixed_version_id' AND jd.value = '55'
GROUP BY j.issue_id
) tmp ON tmp.issue_id = i.id;
以下是SQL Fiddle示例。