2015-10-20 25 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";