如何选择特定iduser的最后一行插入

时间:2014-05-14 14:50:05

标签: mysql database select max where

您好我想获得输入特定数据的特定用户标识。当X用户输入数据并保存h时将是最后一行。但是我如何取最后一行例子我的用户id = 16.Mnay用户可以在他之后插入数据,但我只想要用户ID 16的最后一行。

SELECT * 
from
    projetstaches
        inner join
    timesheets
        on (timesheets.timId = projetstaches.prtTimeSheetId)
        inner join
    users
        on (users.usrId = timesheets.timUserId)
WHERE
    users.usrId = 16  AND `prtTimeSheetId` = ( 
SELECT MAX(  `prtTimeSheetId` ) 
FROM projetstaches ) 

当我做这样的事情时,它会返回空白,因为输入内容的最后一个用户是7。

那么如何检索我的上一个用户= 16?

这看起来像我的表(这是一个古老的版本,但很高兴知道它现在看起来像数据现在更完整但表格的名称是相同的)

http://pastebin.com/6LBwGtc3

1 个答案:

答案 0 :(得分:0)

子查询需要使用连接为该用户选择最高prtTimeSheetId,而不是整个表。

SELECT * 
from
    projetstaches
        inner join
    timesheets
        on (timesheets.timId = projetstaches.prtTimeSheetId)
        inner join
    users
        on (users.usrId = timesheets.timUserId)
WHERE
    users.usrId = 16 
AND prtTimeSheetId = (
    SELECT MAX(preTimeSheetId)
    from 
        projetstaches
            inner join
        timesheets
            on (timesheets.timId = projetstaches.prtTimeSheetId)
            inner join
        users
            on (users.usrId = timesheets.timUserId)
    WHERE users.usrId = 16)