2016-08-03 18 views
-2

嘗試創建一個查詢以獲取與用戶相關的最新記錄。這是我嘗試編寫一個查詢,返回與特定用戶相關的最新行

"SELECT * 
FROM (
    SELECT * 
    FROM mytable 
    ORDER BY id 
    DESC LIMIT 1) 
WHERE userid = $userID"; 
+3

跳過子查詢。 – jarlh

+0

使用此查詢,您將獲得所有用戶的最後一條記錄,然後是您想要的用戶過濾這一條記錄,這是錯誤。 –

+0

你的嘗試有什麼問題?添加你得到的錯誤。這將與您在派生表上缺少的表別名有關。像@jarlh說你並不需要使用派生表 – ughai

回答

2

你還可以:

Select * from table 
Where id = 
    (Select Max(Id) from table 
    where userid = $userID) 
0

使用top(1)

Select TOP(1) * FROM table ORDER BY id DESC 
+2

'TOP'是用於SQL Server的。 MySQL有'LIMIT'。 (ANSI SQL有'FETCH FIRST'。) – jarlh

+0

沒錯,我讀過的標題顯示sql無論如何你是對的 –

0

嘗試:

SELECT * 
    FROM mytable 
    WHERE userid = $userID 
    ORDER BY id DESC 
    LIMIT 1 
1

簡單地跳過子查詢:

SELECT * 
FROM mytable 
WHERE userid = $userID 
ORDER BY id DESC 
LIMIT 1 
相關問題