2015-10-05 138 views
0

我有两个表,即条款和版本。如何使用Symfony查询构建器从外部表中的连接表中获取第一条记录?

文章表可以有很多版本。

Aritcle: 
ID | title 
1 | title 1 
2 | title 2 

Version 
ID | title  | aritcle_id | date_create 
1 | version 1 | 1   | 2015-10-09 12:32:23 
2 | version 2 | 1   | 2015-10-08 9:10:20 
3 | version 3 | 1   | 2015-10-08 8:10:20 
4 | version 4 | 2   | 2015-10-08 10:10:20 

我站在版本,然后我想只得到第一次创建的版本,这是与文章加入。

预期的结果应该是这样的:

ID | title 
3 | version 3 
4 | version 4 

我怎么能写查询来获取与上述结果?

+0

你引用哪个版本的框架? sf1 + doctrine1或sf2 + docrine2?我不记得框架版本1的querybuilder ...让我知道 – Matteo

+0

我正在使用symfony2 + doctrine2 – vibol

+0

好吧,date_Create字段不是创建版本的日期?从示例数据看起来不是....只能通过id我们可以找到第一个创建的版本? – Matteo

回答

0

对于Article_id = 1第一个创建的版本是version 3,因为它是早期创建的。

select V.ID,V.title 
     from Version V 
     join ( select article_id,MIN(date_create) as date_create 
       from Version 
       group by article_id) as MINDATE 
       on V.article_id = MINDATE.article_id 
       and V.date_create = MINDATE.date_create 
+0

对不起,我错过了标签Symfony。这个答案对于sqlserver是正确的 –

+0

没关系@Andrey Davydenko,我会尽我所能把它转换成Symfony – vibol

相关问题