2015-10-26 62 views
1

試圖讓所有行其中userid = '我'簡單的SQL聯盟2個查詢在同一個表

然後2名最新行其中userid <> '我'

項目:

 
Userid time 
other2 11 
other3 10 
me  10 
me  8 
other1 8 
other3 7 
me  6 

將返回

 
Userid time 
me  10 
me   8 
me   6 
other2 11 
other3 10 

結果不必爲b E在任何順序

(SELECT * FROM Items WHERE userid='me') 
UNION ALL 
(SELECT * FROM Items WHERE userid<>'me' 
ORDER BY time DESC LIMIT 2) 

這僅輸出2行

+0

SQL-Server或MySQL? –

+3

您的查詢看起來正確。使用'limit'建議MySQL,所以我刪除了SQL Server標記。 –

+1

我同意@GordonLinoff。看到[小提琴](http://sqlfiddle.com/#!9/ca405/1/0)。 –

回答

2

如上所示

(SELECT * FROM Items WHERE userid='me') 
UNION ALL 
(SELECT * FROM Items WHERE userid<>'me' 
ORDER BY time DESC LIMIT 2) 

UNION ALL地連接了兩個查詢,並且括號允許不同WHERE /訂購SQL是正確的BY/LIMIT子句。
此處演示: http://sqlfiddle.com/#!9/ca405/1/0