2015-10-20 49 views
0

我创建一个薪水报告获取最新的行插入到SQL一定ID

这是我的查询:

$sql = "SELECT * 
FROM payroll, employees 
WHERE employees.username='$username' 
AND payroll.id=employees.id"; 

,输出是: output并通过滚动向下,this is the continuation of the output

总结一下,查询显示某个ID的所有记录,但我希望它显示数据库中该特定ID的最后一个插入数据。这怎么会发生?

+0

使用ORDER BY与限制ID说明你想要什么 –

+0

尝试'ORDER BY employees.id DESC LIMIT 1' – jitendrapurohit

+0

我不是当然我很了解你。你是说你得到**每个员工**的所有工资单记录**,而你只想**每个员工**的最后一个工资记录**?你的薪资记录是否有时间戳或序列号? –

回答

1

要获得最新的行,您必须订购id desc并获得一个记录集limit 1

因此,代码将

$sql = "SELECT * 
FROM payroll, employees 
WHERE employees.username='$username' 
AND payroll.id=employees.id ORDER BY employees.id DESC LIMIT 1 "; 
+0

哇,它的工作原理。谢谢! –

0

试试这个

$sql = "SELECT * 
FROM payroll, employees 
WHERE employees.username='$username' 
AND payroll.id=employees.id ORDER BY employees.id DESC LIMIT 1 " 

如果最新的ID是最大的价值。

0

使用这个MySQL ORDER BYLIMIT

$sql = "SELECT * 
FROM payroll, employees 
WHERE employees.username='$username' 
AND payroll.id=employees.id ORDER BY employees.id DESC LIMIT 1"; 
0
$sql = "SELECT t1.*,t1.* 
FROM payroll t1 join employees t2 on t1.id = t2.id 
WHERE t1.username='$username' order by t2.id desc limit 1";