2012-08-17 37 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