2012-08-17 55 views
0

我在Stackoverflow上看到了其他一些讨论子选择的问题,但他们通常涉及多个表的使用。在大多数情况下,正确的加入可以达到同样的目的。我该如何用DBIX :: Class编写这个查询?

但是,我的查询下面提到了一个表。我将如何使用DBIX :: Class编写此代码?

select ID, username, email, role 
from Employees 
where (ID in 
    (select max(ID) 
     from Employees 
     where username = 'jsmith' 
    )) 
order by ID DESC 

谢谢!

- 编辑1:SQL代码固定

回答

1

Cookbook具有几乎相同查询作为示例。

您的SQL查询对我来说没有意义,因为子查询返回一个id,所以WHERE id =()会更有意义。 你想用它来完成什么?

+0

返回的ID将是子选择中的最大值(id)。例如,如果DB中有许多记录,其中username ='jsmith',则此查询将为我们提供最新记录。不完全是最好的数据库结构,但这是我必须处理的。 但是,我发现了一个合适的解决方案,它需要在数据库中创建一个视图来完成大部分grunt-work(仅通过每个用户的最大ID列出最新记录)。 – jblue 2012-08-20 22:02:10