不选择sql中的好值


Does't selecting the good value in sql

你好,我有一个sql语法,它总是采取最后一条记录,不检查其他条件。

SELECT * 
from projetstaches ,users,timesheets 
WHERE  `prtTimeSheetId` = ( SELECT MAX(  `prtTimeSheetId` ) FROM projetstaches )  AND usrId = 16 AND timId = prtTimeSheetId

我正在使用php和sql,但我知道这是我的语法不好。

它总是给我最后的记录。它不需要我的用户16的最后记录。因为我最后的记录是用户7的。知道为什么吗?

所以我需要取用户的最后一个项目时间表16

* *编辑* *这里是我的数据http://pastebin.com/6LBwGtc3

我想你的查询应该是这样的:

SELECT * 
from
    projetstaches
        inner join
    timesheets
        on (timesheets.timId = projetstaches.prtTimeSheetId)
        inner join
    users
        on (users.usrId = timesheets.timUserId)
WHERE
    users.usrId = 16
order by timesheets.timId desc
limit 1

要理解它是如何工作的,我建议你玩这个查询:

  1. 删除where -检查结果
  2. 移除limit -检查结果