你好,我有一个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
要理解它是如何工作的,我建议你玩这个查询:
- 删除
where
-检查结果 - 移除
limit
-检查结果